DBAtlas · 데이터베이스 운영 아틀라스

ORA-01555: Snapshot too old: rollback segment number too small

Oracle

의미

장시간 실행되는 쿼리가 시작 시점 기준의 읽기 일관성 이미지를 구성하는 데 필요한 과거 undo 데이터에 접근하지 못했다. 해당 undo 정보가 덮어써졌기 때문이다.

원인

작은 undo 테이블스페이스, 짧은 UNDO_RETENTION, 매우 많은 동시 DML 중의 장시간 쿼리, 또는 쿼리 안에서 같은 테이블을 커밋하는 루프(fetch across commit).

해결 방법

UNDO_RETENTION을 늘리고 undo 테이블스페이스를 확장한다. 가능하면 자동 관리(AUTOEXTEND on)에 맡긴다. 긴 쿼리는 작게 나누거나 비피크 시간에 실행한다. RETENTION GUARANTEE를 검토한다: ALTER TABLESPACE undotbs1 RETENTION GUARANTEE. 루프 안에서 커밋하는 애플리케이션 로직을 수정한다.

DBAtlas에서 열기 →

같은 데이터베이스의 다른 항목