Oracle ORA-00473 오류 원인과 해결 방법 완벽 가이드

ORA-00473
2026년 06월 12일 | DBMS Error 가이드

이 글에서 다루는 내용

ORA-00473 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.

ORA-00473 ARCH process terminated with error 는?

ORA-00473은 Oracle 데이터베이스의 ARCH(Archiver) 프로세스가 비정상적으로 종료되었을 때 발생하는 에러입니다. ARCH 프로세스는 ARCHIVELOG 모드에서 온라인 리두 로그 파일을 아카이브 로그 파일로 복사하는 역할을 담당하며, 이 프로세스가 실패하면 데이터베이스 전체 운영에 심각한 영향을 미칩니다. 특히 아카이브 로그가 쌓이지 못하면 온라인 리두 로그를 재사용할 수 없어 데이터베이스가 정지(HANG)되는 상황까지 이어질 수 있으므로 즉각적인 조치가 필요합니다.


주요 발생 원인

  • 아카이브 로그 저장 공간 부족 (Disk Full)

가장 빈번하게 발생하는 원인으로, 아카이브 로그가 저장되는 디스크 또는 파일시스템의 여유 공간이 부족할 때 ARCH 프로세스가 강제 종료됩니다. 아카이브 로그는 데이터 변경량에 비례하여 생성되기 때문에 배치 작업이나 대량 DML 이후에 급격히 증가하는 경향이 있습니다. 이 경우 단순히 에러 메시지만으로는 원인 파악이 어렵기 때문에 반드시 OS 레벨의 디스크 사용량을 함께 확인해야 합니다.

  • 아카이브 로그 대상 경로(Destination) 설정 오류 또는 접근 불가

LOG_ARCHIVE_DEST_n 파라미터에 설정된 경로가 잘못되었거나, 해당 디렉토리가 존재하지 않거나, Oracle 프로세스가 해당 경로에 쓰기 권한이 없을 경우 ARCH 프로세스가 종료됩니다. NFS(Network File System) 마운트 경로를 아카이브 대상으로 사용하는 환경에서는 네트워크 장애나 마운트 해제로 인해 간헐적으로 발생하는 경우도 많습니다. 이 경우 alert 로그와 함께 OS의 마운트 상태 및 권한을 동시에 점검해야 합니다.

  • I/O 오류 또는 미디어 장애

아카이브 로그를 기록하는 디스크 또는 스토리지 장치에서 I/O 에러가 발생하면 ARCH 프로세스가 파일 쓰기에 실패하고 종료됩니다. 하드웨어적인 불량 섹터, SAN/NAS 장애, OS 레벨의 파일시스템 오류 등 다양한 원인이 복합적으로 작용할 수 있습니다. 이 경우 Oracle alert 로그 외에도 OS의 시스템 로그(/var/log/messages 등)와 스토리지 벤더의 오류 로그도 반드시 함께 확인해야 합니다.


해결 방법

1. 아카이브 로그 저장 공간 확보

먼저 현재 아카이브 로그의 저장 위치와 사용 현황을 확인합니다.

-- 아카이브 로그 목적지 확인
SELECT DEST_ID, DEST_NAME, STATUS, TARGET, ARCHIVER, DESTINATION
FROM V$ARCHIVE_DEST
WHERE STATUS != 'INACTIVE';

-- 아카이브 로그 생성 현황 확인
SELECT TRUNC(FIRST_TIME, 'DD') AS LOG_DATE,
       COUNT(*) AS LOG_COUNT,
       ROUND(SUM(BLOCKS * BLOCK_SIZE) / 1024 / 1024 / 1024, 2) AS SIZE_GB
FROM V$ARCHIVED_LOG
WHERE STANDBY_DEST = 'NO'
GROUP BY TRUNC(FIRST_TIME, 'DD')
ORDER BY LOG_DATE DESC;

RMAN을 사용하여 오래된 아카이브 로그를 삭제하고 공간을 확보합니다.

-- RMAN으로 불필요한 아카이브 로그 삭제 (7일 이전)
-- RMAN 프롬프트에서 실행
-- RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';

-- 또는 백업 후 삭제
-- RMAN> BACKUP ARCHIVELOG ALL DELETE INPUT;

2. 아카이브 로그 경로 설정 수정

경로 오류가 원인인 경우 다음과 같이 파라미터를 확인하고 수정합니다.

-- 현재 아카이브 로그 목적지 파라미터 확인
SHOW PARAMETER LOG_ARCHIVE_DEST;

-- 아카이브 로그 목적지 변경 (예시)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/oradata/archive' SCOPE=BOTH;

-- 대체 경로 추가 설정 (이중화)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_2 = 'LOCATION=/oradata/archive_bak' SCOPE=BOTH;

-- 아카이브 로그 목적지 상태 상세 확인
SELECT DEST_ID, STATUS, ERROR, FAIL_DATE, FAIL_SEQUENCE, FAIL_BLOCK
FROM V$ARCHIVE_DEST_STATUS
WHERE DEST_ID IN (1, 2);

디렉토리 권한도 반드시 OS 레벨에서 확인합니다.

-- SQL*Plus에서 OS 명령 확인용 (DBA 권한 필요)
-- 실제 OS 레벨에서 아래 명령 실행 권장
-- $ ls -la /oradata/archive
-- $ df -h /oradata/archive

3. ARCH 프로세스 수동 재시작

에러 원인을 제거한 후, ARCH 프로세스를 수동으로 재시작합니다.

-- 현재 아카이브 모드 확인
SELECT LOG_MODE FROM V$DATABASE;

-- ARCH 프로세스 재시작 (Archiving 일시 중지 후 재시작)
ALTER SYSTEM ARCHIVE LOG STOP;
ALTER SYSTEM ARCHIVE LOG START;

-- 즉시 아카이브 수행 강제 실행
ALTER SYSTEM ARCHIVE LOG ALL;

-- 현재 리두 로그 스위치 강제 실행
ALTER SYSTEM SWITCH LOGFILE;

-- ARCH 프로세스 상태 확인
SELECT PROCESS, STATUS, LOG#, SEQUENCE#
FROM V$MANAGED_STANDBY
WHERE PROCESS LIKE 'ARC%';

4. Alert 로그에서 상세 원인 추적

-- Alert 로그 위치 확인
SELECT VALUE FROM V$DIAG_INFO WHERE NAME = 'Diag Trace';

-- 동적 뷰를 통한 Alert 로그 최근 내용 확인 (11g 이상)
SELECT ORIGINATING_TIMESTAMP, MESSAGE_TEXT
FROM V$DIAG_ALERT_EXT
WHERE MESSAGE_TEXT LIKE '%ORA-00473%'
   OR MESSAGE_TEXT LIKE '%ARCH%'
ORDER BY ORIGINATING_TIMESTAMP DESC
FETCH FIRST 50 ROWS ONLY;

예방 방법

  • 아카이브 로그 공간 모니터링 자동화 및 임계값 알림 설정

아카이브 로그 저장 공간이 70~80% 이상 차면 자동으로 DBA에게 알림이 가도록 모니터링 스크립트를 구성하고, 가능하면 Oracle Enterprise Manager(OEM) 또는 외부 모니터링 툴(Zabbix, Prometheus 등)과 연동하여 실시간 감시 체계를 구축해야 합니다. 또한 RMAN 보존 정책(Retention Policy)을 명확히 설정하여 불필요한 아카이브 로그가 자동으로 정리되도록 구성하는 것이 중요합니다.

“`sql

— RMAN 보존 정책 설정 (복구 윈도우 7일 기준)

— RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

— 아카이브 로그 공간 사용률 모니터링 쿼리

SELECT DEST_ID,

DEST_NAME,

SPACE_LIMIT / 1024 / 1024 / 1024 AS LIMIT_GB,

SPACE_USED / 1024 / 1024 / 1024 AS USED_GB,

ROUND(SPACE_USED / NULLIF(SPACE_LIMIT, 0) * 100, 2) AS USED_PCT

FROM V$RECOVERY_FILE_DEST;

“`

  • 아카이브 로그 대상 경로 이중화 및 정기 점검

LOG_ARCHIVE_DEST_1LOG_ARCHIVE_DEST_2를 서로 다른 물리적 디스크나 파일시스템에 설정하여 단일 장애점(SPOF)을 제거해야 합니다. 또한 NFS나 외부 스토리지를 아카이브 대상으로 사용할 경우 마운트 상태와 쓰기 권한을 주기적으로 자동 점검하는 스크립트를 크론 잡(cron job)으로 등록하여 관리하는 것이 실무에서 검증된 방법입니다.


관련 에러

  • ORA-00255: ARCH 프로세스가 아카이브 작업 중 실패할 때 함께 발생하는 에러로, 구체적인 아카이브 실패 원인을 나타냅니다.
  • ORA-00257: 아카이브 로그 저장 공간 부족으로 Archiver가 꽉 찼을 때 발생하며, 내부 연결을 제외한 모든 접속이 차단되는 심각한 에러입니다.
  • ORA-16014: 아카이브 대상 경로가 유효하지 않거나 접근 불가능할 때 발생하는 에러입니다.
  • ORA-19809: Fast Recovery Area(FRA) 공간 한도 초과 시 발생하며, ORA-00473과 함께 나타나는 경우가 많습니다.
  • ORA-00270: 아카이브 로그 파일 생성 중 오류가 발생할 때 나타나는 에러로, I/O 장애와 밀접한 관련이 있습니다.

DBMS 에러 코드 시리즈

주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.

본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.

댓글 남기기