Oracle/백업&복구

복구 후 Temp Tablespace 사용하도록 지정하는 법

에몽이ㅋ 2012. 2. 3. 08:45
복구 후 database를 open 할때

alert log에 다음과 같은 log가 보입니다.

*********************************************************************
WARNING: The following temporary tablespaces contain no files.
         This condition can occur when a backup controlfile has
         been restored.  It may be necessary to add files to these
         tablespaces.  That can be done using the SQL statement:

         ALTER TABLESPACE <tablespace_name> ADD TEMPFILE

         Alternatively, if these temporary tablespaces are no longer
         needed, then they can be dropped.
           Empty temporary tablespace: TEMP
*********************************************************************

SQL> alter tablespace temp add tempfile '/home/oracle/oradata/testdb/temp01.dbf' REUSE; 
(칠때 원래있던 temp01.dbf파일도 있어야 합니다.)


하지만 흔히 백업할때 temp는 백업하지 않으므로
파일이 없어서 위 방법이 안 먹힌다고 하면 다른 temp를 생성해서 그 temp를 default로 하면 됩니다.

1. 다른 temporary tablespace생성
CREATE TEMPORARY TABLESPACE temp_imsi
TEMPFILE '/home/oralce/oradata/testdb/temp_imsi01.dbf'
SIZE 50M autoextend on maxsize 500M;

2. 생성한 temp를 디폴트로 지정
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp_imsi;

3. 기존에 있던 temp삭제
(파일은 없고, 딕셔너리에 등록만 되어 있으니 삭제해주는게 좋습니다. 어차피 temp는 자료저장용이 아니니 삭제해줘도 괜찮습니다.) 
DROP TABLESPACE temp including contents and datafiles;