DB/ORACLE

ORACLE ORA-00257: archiver error 해결 방법

devmean 2026. 3. 26. 11:15

1. ORA-00257 에러란?

ORA-00257: archiver error. Connect internal only, until freed.

의미

  • 아카이브 로그를 저장할 공간이 부족함
  • 더 이상 redo 로그를 아카이빙할 수 없는 상태
  • 일반 사용자 접속 및 DML 작업 제한 발생

즉, 디스크 공간 부족으로 DB가 멈추기 직전 상태입니다.


2. 발생 원인

1) 아카이브 로그 디렉토리 FULL

  • 가장 흔한 원인
  • archive log가 쌓여서 디스크 용량 초과

2) FRA(Fast Recovery Area) 공간 부족

SHOW PARAMETER db_recovery_file_dest_size;
  • FRA 영역이 가득 차면 자동으로 아카이브 중단

3) 백업 미수행

  • RMAN 백업 없이 로그만 계속 쌓임

4) 장시간 트랜잭션 또는 대량 작업

  • redo 로그 급증 → archive 로그 폭증

3. 현재 상태 확인 방법

아카이브 로그 경로 확인

ARCHIVE LOG LIST;

FRA 사용량 확인

SELECT * FROM V$RECOVERY_FILE_DEST;

아카이브 로그 위치 확인

SHOW PARAMETER log_archive_dest;

4. 해결 방법

상황에 따라 아래 방법 중 하나 또는 여러 개를 적용합니다.

방법 1. 불필요한 아카이브 로그 삭제 (가장 빠른 해결)

RMAN 접속

rman target /

오래된 로그 삭제

DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-2';

2일 이전 로그 삭제

전체 삭제 (주의)

DELETE ARCHIVELOG ALL;

반드시 백업 여부 확인 후 실행

방법 2. OS에서 직접 삭제

cd /archive_log_path
rm -rf *.arc

주의

  • DB 백업 없이 삭제 시 복구 불가
  • 반드시 DBA 판단 후 진행

방법 3. FRA 용량 증가

ALTER SYSTEM SET db_recovery_file_dest_size = 20G;

기존보다 크게 확장

방법 4. 아카이브 경로 변경

ALTER SYSTEM SET log_archive_dest_1='LOCATION=/new_path';

여유 있는 디스크로 이동

방법 5. 아카이브 모드 OFF (임시 대응)

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE NOARCHIVELOG;
ALTER DATABASE OPEN;

주의

  • 복구 불가능 상태가 되므로 운영 DB에서는 권장하지 않음
  • 테스트 환경에서만 사용

5. 예방 방법 (중요)

1) RMAN 자동 백업 설정

  • 일정 주기로 archive log 백업 및 삭제

2) 용량 모니터링

  • FRA 사용률 지속 확인
  • 임계치 알림 설정

3) 로그 삭제 정책 설정

CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP 1 TIMES;

4) 디스크 여유 확보

  • archive 영역은 항상 여유 공간 유지

6. 실무 TIP

  • ORA-00257 발생 시 가장 먼저 할 일
    1. 디스크 사용량 확인 (df -h)
    2. archive 로그 위치 확인
    3. 불필요 로그 삭제
  • 운영 환경에서는
    RMAN 기준으로 삭제하는 것이 안전

7. 요약

  • 원인: 아카이브 로그 저장 공간 부족
  • 영향: DB 작업 중단 가능
  • 해결:
    • archive log 삭제
    • FRA 용량 증가
    • 경로 변경
  • 예방:
    • 정기 백업 + 자동 삭제 정책 필수
반응형