ORA-25153: Temporary Tablespace is Empty
오라클에서의 ORA-25153: Temporary Tablespace is Empty 에러에 대해서 기술합니다.
ORA-25153: Temporary Tablespace is Empty 에러는 테이블스페이스의 파일이 없거나 용량이 부족하거나 하여
테이블 스페이스를 생성 또는 확장을 못하는 경우가 발생할 때 생기는 오류 메세지 입니다.
이를 해결하기위해서 다음과 같은 확인 및 처리를 해봅니다,.
우선 오라클에 sys (dba권한) 계정으로 접근을 합니다.
--------------------------------------------------------
-- 아래와 같이 temporary tablespace 가 있는지 우선 확인
--------------------------------------------------------
SYS> select file_id, tablespace_name, bytes/1024/1024 MB, file_name from dba_temp_files;
no rows selected
SYS> select * from database_properties where property_name='DEFAULT_TEMP_TABLESPACE';
PROPERTY_NAME PROPERTY_V DESCRIPTION
-------------------- ---------- --------------------------------------------------
DEFAULT_TEMP_TABLESP TEMP Name of default temporary tablespace
ACE
SYS> !ls -al /app/oracle/oradata/testdb/temp01.dbf
-rw-r----- 1 oracle oinstall 30416896 Aug 23 08:57 /app/oracle/oradata/testdb/temp01.dbf
--------------------------------------------------------
-- 없다면 temporary tablespace 생성해 주면 되겠지만,
-- 위와 같은 경우 이미 TEMP tablespace 있지만, 해당 tablespace 에 data file 이 없기 때문에
-- 생기는 에러이다. 이럴 경우 해당 파일을 재사용 해주면 된다.
--------------------------------------------------------
--------------------------------------------------------
-- 재사용 해주는 경우,
--------------------------------------------------------
SYS> alter tablespace temp add tempfile '/app/oracle/oradata/testdb/temp01.dbf' size 100M reuse autoextend on;
Tablespace altered.
SYS> select file_id, tablespace_name, bytes/1024/1024 MB, file_name from dba_temp_files;
FILE_ID TABLESPACE_NAME MB FILE_NAME
---------- ------------------------------ ----- --------------------------------------------------
1 TEMP 100 /app/oracle/oradata/testdb/temp01.dbf
--------------------------------------------------------
-- 새로 생성할 경우,
--------------------------------------------------------
SYS> create temporary tablespace temp2 tempfile '/app/oracle/oradata/testdb/temp02.dbf' size 100M;
Tablespace created.
SYS> select file_id, tablespace_name, bytes/1024/1024 MB, file_name from dba_temp_files;
FILE_ID TABLESPACE_NAME MB FILE_NAME
---------- ------------------------------ ----- --------------------------------------------------
1 TEMP 100 /app/oracle/oradata/testdb/temp01.dbf
2 TEMP2 100 /app/oracle/oradata/testdb/temp02.dbf
SYS> alter database default temporary tablespace temp2;