ORA-00257: archiver error. Connect internal only, until freed. 오류를 해결하는 방법에 대해 알아보도록 합시다.
ORA-00257: archiver error. Connect internal only, until freed.
우선 해당 오류의 핵심 단어는 archiver일 것입니다. 아카이버(아카이브)는 오라클에서 데이터에 대한 보관소 또는 저장소를 뜻한답니다. 그러니까 ORA-00257 오류는 아카이버 부분을 정리하면 해결할 가능성이 높은 오류인 것이지요. 보통은 DBA에게 관련 사항을 인계할 텐데, 해당 오류와 관련한 간단한 조회 부분을 안내해 드리겠습니다.
ORA-00257: 아카이버 오류 원인
ORA-00257 오류가 발생하는 가장 일반적인 원인은 리두 로그 파일을 저장을 시도하려고 할 때 저장공간을 초과하는 경우입니다.
ORA-00257: 아카이버 오류 해결하기
리두 로그 파일을 저장하는 아카이버의 용량을 확인해 주세요. 다음은 점검과 관련하여 확인해 볼만한 뷰 목록입니다.
--리커버리 파일 데스티네이션 조회 FRA(Fast Recovery Area)
SELECT * FROM V$RECOVERY_FILE_DEST;
--아카이브 로그 데스티네이션 조회
--에러를 확인할 수 있습니다.
SELECT ERROR, V$ARCHIVE_DEST.* FROM V$ARCHIVE_DEST;
--아카이브드 로그 조회
SELECT * FROM v$ARCHIVED_LOG;
--로그 뷰
SELECT * FROM V$LOG;
ORA-00257 오류를 임시로 해결할 수 있는 방법입니다. DBA가 부재 중일 때 조치하는 것으로 추후 확인이 필요합니다. "SELECT * FROM V$RECOVERY_FILE_DEST;"에서 조회한 파일 경로에서 필요 없는 로그 파일을 정리하거나, 다른 곳에 백업하기, 그리고 필요시 데이터베이스 재시작입니다.
다음은 아카이브 로그를 확인하는 쿼리입니다.
SQL> archive log list
Database log mode No Archive Mode
Automatic archival Disabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 0
Current log sequence 0
아카이브 로그 모드를 설정하거나, 해제하는 명령어(DBA 검토)
--로그 설정
ALTER DATABASE ARCHIVELOG;
--로그 해제
ALTER DATABASE NOARCHIVELOG;