ORA-01652: Unable to extend temp segment by N in tablespace
Oracle의미
Oracle이 임시(temp) 세그먼트를 확장할 충분한 여유 공간을 테이블스페이스에서 찾지 못했다. 보통 정렬, hash join 또는 global temporary table 작업 중 발생한다.
원인
TEMP 테이블스페이스가 가득 참. 대규모 ORDER BY, GROUP BY, DISTINCT, hash join 또는 인덱스 생성 작업이 PGA 메모리에 들어가지 않아 디스크로 넘침. 데이터 파일의 AUTOEXTEND가 꺼져 있거나 디스크 공간이 부족함.
해결 방법
TEMP 사용량을 모니터링한다: SELECT * FROM v$sort_usage / v$tempseg_usage. TEMP 테이블스페이스에 파일을 추가하거나 크기를 늘린다: ALTER TABLESPACE temp ADD TEMPFILE '...' SIZE 2G AUTOEXTEND ON. 영구 테이블스페이스가 가득 찼다면 데이터 파일을 추가한다. 쿼리 최적화(적절한 인덱스, 더 큰 PGA_AGGREGATE_TARGET)로 디스크 정렬을 줄인다.
같은 데이터베이스의 다른 항목
- ORA-00060Deadlock detected while waiting for resource
- ORA-01017Invalid username/password; logon denied
- ORA-01555Snapshot too old: rollback segment number too small
- ORA-04031Unable to allocate N bytes of shared memory
- ORA-12154TNS: could not resolve the connect identifier specified
- ORA-12514TNS: listener does not currently know of service requested in connect descriptor
- ORA-00942Table or view does not exist