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

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

이 글에서 다루는 내용

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

ORA-01113 file needs media recovery 는?

ORA-01113 에러는 Oracle 데이터베이스에서 특정 데이터 파일이 미디어 복구(Media Recovery)를 필요로 하는 상태일 때 발생합니다. 이 에러는 주로 데이터베이스를 열려고(OPEN) 시도할 때 나타나며, 해당 파일이 온라인 상태로 전환되거나 데이터베이스가 시작될 때 파일의 SCN(System Change Number)이 컨트롤 파일 또는 다른 파일과 일치하지 않는 경우에 발생합니다. 쉽게 말해, 특정 데이터 파일이 비정상적인 방법으로 종료되거나 백업 상태에서 복원된 후 아카이브 로그나 리두 로그로 동기화(sync)가 이루어지지 않아 데이터베이스가 해당 파일을 사용하기 전에 복구가 선행되어야 함을 알리는 메시지입니다.


주요 발생 원인

  • 불완전한 복구 후 데이터베이스 오픈 시도

가장 흔한 원인 중 하나로, RMAN 또는 OS 레벨의 백업을 통해 데이터 파일을 복원한 뒤 적절한 미디어 복구 없이 데이터베이스를 바로 오픈하려 할 때 발생합니다. 복원된 파일은 백업 시점의 SCN을 가지고 있기 때문에 현재 컨트롤 파일이 기대하는 SCN과 차이가 발생하며, Oracle은 이 불일치를 감지하고 복구 필요 여부를 에러로 알립니다. 즉, 파일이 “과거 시점”에 있으므로 아카이브 로그를 적용하여 현재 시점으로 끌어올려야 합니다.

  • 비정상적인 데이터베이스 종료(Crash) 및 파일 오프라인

전원 장애, 시스템 크래시, 또는 OS 레벨의 강제 종료 등으로 인해 데이터베이스가 비정상 종료된 경우, 일부 데이터 파일이 오프라인 상태로 남거나 커밋되지 않은 변경사항이 반영되지 않은 채로 남게 됩니다. 이후 데이터베이스를 재시작할 때 Oracle은 해당 파일들이 정상적인 체크포인트(Checkpoint) 과정을 거치지 않았음을 인식하고 ORA-01113을 발생시킵니다. 이 경우는 보통 인스턴스 복구(Instance Recovery)가 자동으로 처리되어야 하지만, 파일이 오프라인 상태라면 수동 미디어 복구가 필요합니다.

  • 데이터 파일을 오프라인(OFFLINE)으로 설정한 후 복구 없이 온라인 전환 시도

운영 중 특정 데이터 파일을 의도적으로 OFFLINE으로 설정하거나 테이블스페이스를 OFFLINE 시킨 후, 복구 절차 없이 바로 ONLINE으로 전환하려 할 때도 이 에러가 발생합니다. OFFLINE 기간 동안 발생한 아카이브 로그들이 해당 파일에 적용되지 않았기 때문에, 컨트롤 파일이 기대하는 SCN과 실제 파일의 SCN 사이에 간격이 생겨 Oracle이 복구를 요구하게 됩니다. 특히 ARCHIVELOG 모드에서 OFFLINE NORMAL이 아닌 OFFLINE DROP 또는 OFFLINE IMMEDIATE를 사용한 경우에 자주 발생합니다.


해결 방법

1단계: 문제 파일 확인

먼저 어떤 파일이 복구를 필요로 하는지 확인합니다.

-- 복구가 필요한 파일 확인
SELECT file#, name, status, checkpoint_change#, last_change#
FROM v$datafile
WHERE status IN ('RECOVER', 'OFFLINE')
ORDER BY file#;

-- 에러 발생 시 상세 정보 조회
SELECT file#, error, recover, fuzzy, checkpoint_change#
FROM v$datafile_header
ORDER BY file#;

2단계: RMAN을 이용한 미디어 복구 (권장 방법)

RMAN을 사용하는 것이 가장 안전하고 권장되는 방법입니다.

-- RMAN 실행 후 복구 명령
RMAN> CONNECT TARGET /

-- 데이터베이스 전체 복구
RMAN> RECOVER DATABASE;

-- 특정 데이터 파일만 복구 (file# 기준)
RMAN> RECOVER DATAFILE 5;

-- 특정 테이블스페이스 복구
RMAN> RECOVER TABLESPACE users;

-- 복구 후 데이터베이스 오픈
RMAN> ALTER DATABASE OPEN;

3단계: SQL*Plus를 이용한 수동 미디어 복구

RMAN 환경이 구성되지 않은 경우 SQL*Plus에서 직접 복구를 수행합니다.

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

-- 특정 데이터 파일 복구 (파일 번호로)
RECOVER DATAFILE 5;

-- 또는 파일 경로로 복구
RECOVER DATAFILE '/u01/oradata/ORCL/users01.dbf';

-- 특정 테이블스페이스 복구
RECOVER TABLESPACE users;

-- 데이터베이스 전체 복구
RECOVER DATABASE;

-- 자동으로 아카이브 로그 적용 (AUTO 옵션)
RECOVER AUTOMATIC DATAFILE 5;

-- 복구 완료 후 데이터베이스 오픈
ALTER DATABASE OPEN;

4단계: 파일이 오프라인인 경우

-- 현재 오프라인 파일 목록 확인
SELECT file#, name, status
FROM v$datafile
WHERE status = 'OFFLINE';

-- 테이블스페이스를 오프라인 상태에서 복구 후 온라인 전환
ALTER TABLESPACE users ONLINE;

-- 또는 특정 파일을 온라인으로 전환 (복구 완료 후)
ALTER DATABASE DATAFILE 5 ONLINE;

-- 복구가 완전히 완료됐는지 확인
SELECT file#, name, status, fuzzy
FROM v$datafile_header
WHERE file# = 5;

5단계: RESETLOGS 옵션이 필요한 경우 (불완전 복구)

아카이브 로그가 없어 특정 시점까지만 복구가 가능한 경우입니다.

-- MOUNT 상태에서 불완전 복구
STARTUP MOUNT;

-- 특정 SCN까지 복구
RECOVER DATABASE UNTIL CHANGE 1234567;

-- 특정 시간까지 복구
RECOVER DATABASE UNTIL TIME '2024-01-15:14:30:00';

-- RESETLOGS 옵션으로 데이터베이스 오픈
ALTER DATABASE OPEN RESETLOGS;

-- RESETLOGS 이후 즉시 전체 백업 권장
-- RMAN에서:
-- BACKUP DATABASE PLUS ARCHIVELOG;

예방 방법

  • 정기적인 백업과 아카이브 로그 관리 체계 구축

ARCHIVELOG 모드를 반드시 활성화하고, RMAN을 이용한 정기적인 전체 백업(Full Backup) 및 증분 백업(Incremental Backup) 스케줄을 구성해야 합니다. 아카이브 로그는 데이터 파일 복구의 핵심 요소이므로, 아카이브 로그 대상 디렉터리의 공간을 충분히 확보하고 정기적으로 오래된 로그를 안전한 보조 저장 장치에 백업해두어야 합니다. 또한, 백업의 유효성을 주기적으로 검증(RMAN VALIDATE)하여 실제 복구 상황에서 백업이 사용 가능한 상태임을 미리 확인하는 습관을 들여야 합니다.

“`sql

— ARCHIVELOG 모드 확인

SELECT log_mode FROM v$database;

— RMAN 백업 유효성 검증

— RMAN> VALIDATE DATABASE;

— RMAN> RESTORE DATABASE VALIDATE;

“`

  • 데이터 파일 오프라인/온라인 작업 시 절차 준수

테이블스페이스나 데이터 파일을 OFFLINE으로 전환할 때는 반드시 OFFLINE NORMAL 또는 OFFLINE TEMPORARY 옵션을 사용하고, ONLINE으로 복귀 시 반드시 복구 절차를 거치는 운영 절차를 문서화하고 준수해야 합니다. 특히 OFFLINE DROP은 NOARCHIVELOG 모드에서만 사용하는 옵션으로 ARCHIVELOG 환경에서 사용하면 해당 파일은 반드시 복구를 거쳐야 온라인 전환이 가능해지므로 주의해야 합니다.

“`sql

— 안전한 테이블스페이스 오프라인 방법

ALTER TABLESPACE users OFFLINE NORMAL;

— 작업 완료 후 복구 및 온라인 전환

RECOVER TABLESPACE users;

ALTER TABLESPACE users ONLINE;

“`


관련 에러

  • ORA-01110: 에러 발생 시 문제가 된 데이터 파일의 이름과 경로를 함께 출력하는 에러로, ORA-01113과 항상 함께 발생하여 어떤 파일이 문제인지 정확히 파악하는 데 도움을 줍니다.
  • ORA-01114: 데이터 파일에 쓰기(Write) 작업 중 I/O 오류가 발생했을 때 나타나며, 미디어 오류와 연관되어 ORA-01113을 유발하는 원인이 될 수 있습니다.
  • ORA-00283: 복구 세션이 취소되었음을 나타내는 에러로, 미디어 복구 과정에서 아카이브 로그를 찾지 못하거나 문제가 발생했을 때 ORA-01113과 함께 나타날 수 있습니다.
  • ORA-01157: 데이터 파일을 식별하거나 잠글 수 없을 때 발생하는 에러로, 파일이 물리적으로 존재하지 않거나 접근 불가능한 상태일 때 ORA-01113과 함께 발생하는 경우가 많습니다.
  • ORA-00279 / ORA-00280 / ORA-00289: 수동 미디어 복구 과정에서 필요한 아카이브 로그 파일 번호와 시퀀스를 안내하는 에러들로, RECOVER 명령 실행 시 Oracle이 필요한 로그를 요청할 때 함께 출력됩니다.

DBMS 에러 코드 시리즈

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

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

댓글 남기기