ORA-01652: unable to extend temp segment by 128 in tablespace TEMP 테이블 스페이스 용량 초과 에러
현재 서비스 중인 시스템에서 발생한 에러로 TEMP 데이터 파일의 용량 사용량이 32GB를 사용하는 증상이 있었습니다.
테이블 스페이스의 경우 1개의 데이터 파일의 최대 사용량은 32GB이며 이 사용량을 넘어가면 자동으로 데이터 파일을 생성하여 사용하도록 설정되어 있습니다.
ex) ORACLE01.DBF를 32GB 사용 중이라면 ORACLE02.DBF를 생성하여 사용하도록 됩니다.
하지만 TEMP의 경우 해당 설정이 되어있어도 자동 증설이 되지 않았으며, 사실 TEMP 테이블 스페이스의 경우 32GB를 전부 사용하는 것도 쉽지 않은 부분이긴 합니다.
임시 테이블 스페이스이기 때문에 작업이 끝나면 사용량이 해소되어야 하는데 오라클 작업량이 한 번에 많기도 했습니다.
사실 좀... 데이터 처리과정에 문제인 거 같은데 제가 오라클 DBA는 아닌지라...
오라클 DBA를 섭외해서 해당 부분에 대한 점검을 받는 편이 나을 거 같지만 고객사에서는 오라클 DBA의 몸값도 높고 비용지출이 큰 걸 꺼려하다 보니 그냥 TEMP 테이블 스페이스를 하나 추가로 생성해서 그쪽도 사용할 수 있도록 설정하였습니다.
TEMP 테이블 스페이스 용량 자동 증설 확인 명령
SELECT tablespace_name, file_name, autoextensible
FROM dba_temp_files
WHERE tablespace_name = 'TEMP';
TEMP 테이블 스페이스 자동 증설 최대 크기 확인
SELECT tablespace_name, file_name, bytes, maxbytes
FROM dba_temp_files
WHERE tablespace_name = 'TEMP';
TEMP 테이블 스페이스 데이터 파일 추가
ALTER TABLESPACE TEMP ADD TEMPFILE 'ORADATA경로\ORCL\TEMP02.DBF' SIZE 1G AUTOEXTEND ON NEXT 100M MAXSIZE 30G;
========
추가로 아래 명령어로 테이블 스페이스 재구성하라는 내용도 어디서 봤었는데 이건 TEMP 테이블 스페이스에서는 해당 사항이 없는것 같습니다.
temp 테이블 스페이스 재구성
ALTER TABLESPACE TEMP OFFLINE; 오프라인 후
ALTER TABLESPACE TEMP ONLINE; 온라인
========
이렇게 한 이후 정상적으로 해당 오류는 조치 되었습니다.