복구 후 database를 open 할때
alert log에 다음과 같은 log가 보입니다.
*********************************************************************
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;