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

ORA-01123
2026년 07월 07일 | DBMS Error 가이드

이 글에서 다루는 내용

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

ORA-01123 cannot start online backup; media recovery not enabled 는?

ORA-01123 에러는 온라인 백업(Online Backup)을 시작하려 할 때 데이터베이스가 ARCHIVELOG 모드로 운영되고 있지 않은 경우 발생하는 에러입니다. Oracle에서 온라인 백업을 수행하려면 미디어 복구(Media Recovery)가 활성화되어 있어야 하며, 이는 곧 데이터베이스가 ARCHIVELOG 모드로 운영 중이어야 함을 의미합니다. 즉, NOARCHIVELOG 모드에서 ALTER TABLESPACE ... BEGIN BACKUP 명령을 실행하면 이 에러가 즉시 발생하며, 데이터 보호 전략 전반을 재검토해야 하는 신호이기도 합니다.


주요 발생 원인

  • 데이터베이스가 NOARCHIVELOG 모드로 운영 중인 경우

가장 흔한 원인으로, 데이터베이스가 NOARCHIVELOG 모드로 설정되어 있으면 아카이브 로그 파일이 생성되지 않기 때문에 미디어 복구 자체가 불가능합니다. 온라인 백업은 백업 도중 발생하는 변경 사항을 아카이브 로그로 보완해야 하므로, ARCHIVELOG 모드가 반드시 전제되어야 합니다. 개발 환경이나 테스트 환경에서는 디스크 절약을 위해 NOARCHIVELOG 모드를 사용하는 경우가 많아, 이 모드 그대로 운영 환경에 배포될 때 이 에러가 빈번히 발생합니다.

  • 백업 스크립트 또는 백업 툴 설정 오류

RMAN(Recovery Manager)이나 서드파티 백업 툴이 잘못된 데이터베이스 인스턴스를 대상으로 실행되거나, 설정 파일에서 잘못된 데이터베이스 연결 정보를 참조할 때 이 에러가 발생할 수 있습니다. 특히 다중 인스턴스 환경(RAC)에서 특정 인스턴스만 NOARCHIVELOG 상태인 경우, 스크립트가 해당 인스턴스에 연결되면서 에러를 유발합니다. 백업 자동화 도구를 사용할 때는 반드시 대상 데이터베이스의 아카이브 모드를 사전 확인하는 로직을 포함해야 합니다.

  • 데이터베이스 모드 변경 후 재시작 누락

DBA가 ARCHIVELOG 모드를 활성화하는 ALTER DATABASE 명령을 실행했지만, 이후 데이터베이스를 MOUNT 상태로 재시작하지 않거나 명령이 중간에 실패한 경우 실제로는 NOARCHIVELOG 상태가 유지될 수 있습니다. 또한 클론 데이터베이스나 데이터 이관 후 모드 설정이 초기화되는 경우에도 이 문제가 발생합니다. 변경 후에는 반드시 V$DATABASE 뷰를 통해 현재 로그 모드를 재확인하는 습관이 중요합니다.


해결 방법

1단계: 현재 데이터베이스 아카이브 모드 확인

먼저 현재 데이터베이스가 어떤 모드로 운영되고 있는지 확인합니다.

-- 현재 데이터베이스 로그 모드 확인
SELECT NAME, LOG_MODE, DB_UNIQUE_NAME
FROM   V$DATABASE;

-- 아카이브 로그 대상 경로 확인
SHOW PARAMETER LOG_ARCHIVE_DEST;

-- 아카이브 로그 자동 활성화 여부 확인
SHOW PARAMETER LOG_ARCHIVE_START;

2단계: ARCHIVELOG 모드로 전환

NOARCHIVELOG 모드임이 확인되면, 아래 절차에 따라 ARCHIVELOG 모드로 전환합니다. 이 작업은 반드시 SYSDBA 권한으로 수행해야 하며, 데이터베이스 재시작이 필요합니다.

-- 1. 데이터베이스 정상 종료 (서비스 영향 있음, 사전 공지 필수)
SHUTDOWN IMMEDIATE;

-- 2. 데이터베이스를 MOUNT 상태로 시작
STARTUP MOUNT;

-- 3. ARCHIVELOG 모드로 변경
ALTER DATABASE ARCHIVELOG;

-- 4. 데이터베이스 오픈
ALTER DATABASE OPEN;

-- 5. 변경 결과 확인
SELECT NAME, LOG_MODE
FROM   V$DATABASE;
-- LOG_MODE 컬럼이 'ARCHIVELOG' 로 표시되어야 정상

3단계: 아카이브 로그 경로 설정 (옵션이지만 권장)

-- 아카이브 로그 저장 경로 지정 (예: /arch 디렉토리)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/arch' SCOPE=BOTH;

-- 아카이브 로그 포맷 지정 (선택 사항)
ALTER SYSTEM SET LOG_ARCHIVE_FORMAT = '%t_%s_%r.dbf' SCOPE=SPFILE;

-- 아카이브 로그 최소 성공 횟수 설정
ALTER SYSTEM SET LOG_ARCHIVE_MIN_SUCCEED_DEST = 1 SCOPE=BOTH;

4단계: 온라인 백업 테스트

-- 특정 테이블스페이스에 대해 온라인 백업 시작 테스트
ALTER TABLESPACE USERS BEGIN BACKUP;

-- 백업 진행 상태 확인
SELECT FILE#, STATUS, CHANGE#, TIME
FROM   V$BACKUP;

-- 백업 완료 후 반드시 END BACKUP 실행
ALTER TABLESPACE USERS END BACKUP;

-- RMAN을 이용한 전체 온라인 백업 (권장 방식)
-- RMAN> BACKUP DATABASE PLUS ARCHIVELOG;

5단계: 현재 백업 상태 점검 쿼리

-- 현재 백업 중인 데이터 파일 목록 확인
SELECT D.FILE#,
       D.NAME        AS DATAFILE_NAME,
       B.STATUS      AS BACKUP_STATUS,
       B.CHANGE#,
       B.TIME        AS BACKUP_START_TIME
FROM   V$DATAFILE D
JOIN   V$BACKUP   B ON D.FILE# = B.FILE#
WHERE  B.STATUS = 'ACTIVE';

-- 최근 아카이브 로그 생성 현황 확인
SELECT SEQUENCE#,
       NAME,
       FIRST_TIME,
       NEXT_TIME,
       APPLIED
FROM   V$ARCHIVED_LOG
WHERE  FIRST_TIME >= SYSDATE - 1
ORDER  BY SEQUENCE# DESC;

예방 방법

  • 운영 환경 배포 전 아카이브 모드 체크리스트 의무화

모든 운영 데이터베이스의 구성 및 배포 절차서에 ARCHIVELOG 모드 확인 항목을 필수로 포함시켜야 합니다. 아래 쿼리를 모니터링 스크립트에 포함시켜 주기적으로 실행하고, LOG_MODE가 ‘NOARCHIVELOG’인 경우 즉시 DBA 알림을 발송하는 자동화 시스템을 구축하면 재발을 효과적으로 방지할 수 있습니다.

“`sql

— 모니터링 쿼리: NOARCHIVELOG 모드 감지 시 알림용

SELECT INSTANCE_NAME,

HOST_NAME,

LOG_MODE,

CASE WHEN LOG_MODE = ‘NOARCHIVELOG’

THEN ‘★ 즉시 조치 필요: ARCHIVELOG 모드 전환 요망’

ELSE ‘정상’

END AS STATUS_MSG

FROM V$DATABASE, V$INSTANCE;

“`

  • RMAN을 활용한 백업 정책 표준화 및 백업 검증 자동화

수동 ALTER TABLESPACE ... BEGIN/END BACKUP 방식 대신 RMAN을 표준 백업 도구로 채택하면, RMAN이 내부적으로 아카이브 모드를 확인하고 적절한 에러 메시지를 제공하므로 운영 편의성이 크게 향상됩니다. 또한 RMAN의 BACKUP VALIDATE 명령을 정기적으로 실행하여 백업 무결성을 사전 검증하고, V$RMAN_BACKUP_JOB_DETAILS 뷰를 모니터링하여 백업 이력을 체계적으로 관리하는 것이 Best Practice입니다.


관련 에러

  • ORA-01110: 데이터 파일 식별 에러로, 온라인 백업 중 특정 파일에 접근할 수 없을 때 ORA-01123과 함께 발생할 수 있습니다.
  • ORA-01145: NOARCHIVELOG 모드에서 오프라인 즉시(Offline Immediate) 명령이 허용되지 않을 때 발생하며, 아카이브 설정과 직접 연관됩니다.
  • ORA-00257: 아카이브 로그 대상 디스크가 가득 찬 경우 발생하며, ARCHIVELOG 모드 전환 후 디스크 공간 관리가 부족할 때 연속으로 경험할 수 있는 에러입니다.
  • ORA-01152: 파일이 이전 불완전 미디어 복구 이전의 백업에서 복원된 경우 발생하며, 미디어 복구 관련 에러 체인에서 자주 등장합니다.

DBMS 에러 코드 시리즈

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

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

댓글 남기기