ORA-00257: Archiver error. Connect internal only, until freed
Oracle의미
아카이버(ARCH) 프로세스가 redo log를 아카이브하지 못한다. 보통 아카이브 대상(FRA 또는 아카이브 로그 대상)이 가득 찬 경우이다. 데이터베이스는 새 트랜잭션을 중단시킨다.
원인
Flash Recovery Area(DB_RECOVERY_FILE_DEST) 또는 아카이브 로그 대상이 가득 참, 디스크 공간 부족, RMAN 백업이 아카이브 로그를 삭제하지 않음, 또는 DB_RECOVERY_FILE_DEST_SIZE 한도 도달.
해결 방법
공간을 확보한다: 오래된 아카이브 로그를 RMAN으로 FRA 밖의 대상에 백업한 뒤 삭제한다: RMAN> BACKUP ARCHIVELOG ALL FORMAT '/backup/arc_%U' DELETE INPUT(FRA가 가득 찬 상태에서 FRA로 백업하면 실패한다). Data Guard 환경에서는 아직 standby로 전송되거나 적용되지 않은 아카이브를 삭제하지 않는다. 그렇지 않으면 standby에 gap이 생긴다(CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY). FRA 사용량을 확인한다: SELECT * FROM v$recovery_file_dest / v$flash_recovery_area_usage. DB_RECOVERY_FILE_DEST_SIZE를 일시적으로 늘리거나 대상을 더 큰 디스크로 옮긴다. 디스크 수준의 여유 공간을 확인한다. 정기적인 아카이브 정리 정책을 수립한다.
같은 데이터베이스의 다른 항목
- ORA-12514TNS: listener does not currently know of service requested in connect descriptor
- ORA-00942Table or view does not exist
- ORA-01031Insufficient privileges
- ORA-01000Maximum open cursors exceeded
- ORA-00018Maximum number of sessions exceeded
- ORA-28000The account is locked
- ORA-01578Oracle data block corrupted (file #, block #)