SW/Database / / 2024. 12. 9. 20:18

ORA-01555: Snapshot Too Old / 원인과 해결 방법

반응형

ORA-01555 오류 설명

ORA-01555 오류는 주로 대규모 쿼리 실행 도중 UNDO Tablespace의 공간 부족으로 인해 발생합니다.

이 오류는 "스냅샷이 너무 오래되었습니다(Snapshot Too Old)"라는 메시지로 나타납니다.

 

 

ORA-01555: Snapshot Too Old / 원인과 해결 방법

 

오류 원인

ORA-01555 오류의 주요 원인은 다음과 같습니다:

  1. UNDO Tablespace 부족: UNDO 데이터가 오래 유지되지 못해 이전 데이터에 접근이 불가능해질 때.
  2. 대규모 쿼리: 긴 실행 시간을 가지는 대규모 쿼리가 원인이 될 수 있습니다.
  3. Redo 또는 Rollback Segment 재사용: UNDO 데이터가 빠르게 덮어쓰기될 때.

해결 방법 및 명령어 예시

ORA-01555 오류를 해결하기 위해 다음 방법을 시도하세요:

1. UNDO Tablespace 크기 확인 및 조정

UNDO Tablespace의 크기를 확인하려면 다음 명령어를 사용하세요:

SELECT tablespace_name, file_name, bytes/1024/1024 AS size_mb
FROM dba_data_files
WHERE tablespace_name = 'UNDOTBS1';

UNDO Tablespace를 확장하려면:

ALTER DATABASE DATAFILE '/path_to_undo/undotbs01.dbf' RESIZE 4G;

2. UNDO_RETENTION 매개변수 조정

UNDO 데이터의 보존 시간을 늘리려면 다음 명령어를 실행하세요:

ALTER SYSTEM SET UNDO_RETENTION = 900;

3. 긴 쿼리 최적화

대규모 쿼리를 최적화하거나 Batch로 분할 실행하여 UNDO 공간 소비를 줄입니다.

4. Redo/Undo Segment 모니터링

UNDO Segments 상태를 점검하려면:

SELECT segment_name, tablespace_name, status
FROM dba_rollback_segs;

간단 요약

  • ORA-01555 오류는 UNDO Tablespace 부족이나 긴 쿼리 실행으로 인해 발생합니다.
  • 해결 방법: UNDO Tablespace 크기 조정, UNDO_RETENTION 설정 변경, 쿼리 최적화.

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유