ORA-08176: consistent read failure; rollback data not available (consistent read 실패. rollback 데이터 없음)
Oracle의미
consistent read 이미지를 구성하는 중 쿼리가 undo를 생성하지 않는 작업으로 수정된 블록을 만났다. 이 블록에 대한 undo/rollback 데이터가 없어 일관된 이미지를 구성할 수 없었다. ORA-01555와 달리 undo가 덮어써진 것이 아니라 처음부터 생성되지 않았다. (serializable 격리 오류는 별도 코드인 ORA-08177이다.)
원인
쿼리가 진행 중일 때 같은 객체에서 undo를 생성하지 않는 작업이 실행된 경우다: direct-path load(INSERT /*+ APPEND */, SQL*Loader DIRECT=TRUE), CREATE INDEX / index rebuild 또는 discrete transaction.
해결 방법
direct-path load나 인덱스 작업이 끝난 후 쿼리를 다시 실행한다(재시도). 긴 리포트와 같은 객체에 대한 direct-path load / 인덱스 유지보수 작업을 같은 시간대에 예약하지 않는다. 재발하면 alert log와 ASH로 충돌하는 작업을 식별하고 일정을 분리한다.
같은 데이터베이스의 다른 항목
- ORA-04021timeout occurred while waiting to lock object (객체 락 대기 중 타임아웃 발생)
- ORA-04061existing state of package/procedure has been invalidated (패키지/프로시저의 기존 상태가 무효화됨)
- ORA-01466unable to read data - table definition has changed (데이터를 읽을 수 없음 - 테이블 정의 변경됨)
- ORA-00020maximum number of processes (N) exceeded (최대 프로세스 수(N) 초과)
- ORA-01113file N needs media recovery
- ORA-02393exceeded call limit on CPU usage
- ORA-12801error signaled in parallel query server Pnnn (parallel query server에서 오류 발생)