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

ORA-00215
2026년 10월 27일 | DBMS Error 가이드

이 글에서 다루는 내용

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

ORA-00215 must be at least one control file 는?

ORA-00215 에러는 Oracle 데이터베이스가 기동(STARTUP) 과정에서 컨트롤 파일(Control File)을 단 하나도 찾을 수 없을 때 발생하는 치명적인 오류입니다. 컨트롤 파일은 데이터베이스의 물리적 구조(데이터파일, 리두 로그 파일의 위치 및 상태)를 기록하는 핵심 바이너리 파일로, 이 파일 없이는 Oracle이 데이터베이스를 마운트(MOUNT)하거나 오픈(OPEN)할 수 없습니다. 일반적으로 MOUNT 단계에서 발생하며, 운영 중인 데이터베이스가 갑자기 중단되는 심각한 장애 상황을 초래할 수 있습니다.


주요 발생 원인

1. SPFILE/PFILE의 컨트롤 파일 경로 설정 오류 또는 파일 삭제

가장 흔한 원인으로, CONTROL_FILES 파라미터에 지정된 경로에 실제 컨트롤 파일이 존재하지 않는 경우입니다. 운영자가 실수로 컨트롤 파일을 삭제하거나, 파일 시스템 마운트 포인트가 변경되어 경로가 달라졌을 때 이 에러가 발생합니다. 또한, PFILE(init.ora)을 수동으로 편집하다가 CONTROL_FILES 항목을 잘못 수정하거나 완전히 삭제한 경우에도 동일 에러가 나타납니다.

2. 컨트롤 파일 전체 손상(Corruption) 또는 접근 불가 상태

스토리지 장애, 디스크 불량 섹터, 혹은 파일 시스템 오류로 인해 컨트롤 파일이 물리적으로 손상되면 Oracle이 해당 파일을 유효한 컨트롤 파일로 인식하지 못합니다. 여러 개의 컨트롤 파일을 다중화(Multiplexing)하여 운영하더라도 모든 복사본이 동시에 손상되거나 접근 불가 상태가 되면 ORA-00215가 발생합니다. OS 레벨의 퍼미션(Permission) 문제도 Oracle 프로세스가 컨트롤 파일에 접근하지 못하게 만들 수 있습니다.

3. 데이터베이스 재생성(RECREATE) 또는 마이그레이션 후 파라미터 미동기화

데이터베이스를 다른 서버로 마이그레이션하거나 컨트롤 파일을 새로 생성한 뒤 SPFILE의 CONTROL_FILES 파라미터를 새 경로로 업데이트하지 않은 경우 발생합니다. 클론 데이터베이스(Clone DB) 구성 시 원본 경로가 그대로 남아 있어 새 환경에서 해당 경로에 파일이 없는 상황도 자주 목격됩니다. RMAN을 이용한 복구 후에도 파라미터 파일이 올바르게 업데이트되지 않으면 동일 증상이 나타납니다.


해결 방법

원인 1 해결: 컨트롤 파일 경로 확인 및 복원

먼저 현재 파라미터 파일에 설정된 컨트롤 파일 경로를 확인합니다.

-- NOMOUNT 단계에서 파라미터 확인
STARTUP NOMOUNT;

SHOW PARAMETER CONTROL_FILES;

-- 또는 v$parameter 조회
SELECT name, value
FROM v$parameter
WHERE name = 'control_files';

OS 레벨에서 해당 경로에 파일이 실제로 존재하는지 확인한 후, 파일이 없다면 백업 또는 다중화된 다른 복사본을 이용해 복원합니다.

-- PFILE을 사용하는 경우 경로 수정 예시 (init.ora 편집 후)
-- control_files = '/u01/oradata/ORCL/control01.ctl',
--                 '/u02/oradata/ORCL/control02.ctl'

-- SPFILE 수정
ALTER SYSTEM SET CONTROL_FILES=
  '/u01/oradata/ORCL/control01.ctl',
  '/u02/oradata/ORCL/control02.ctl'
SCOPE=SPFILE;

-- 이후 DB 재기동
SHUTDOWN ABORT;
STARTUP;

원인 2 해결: 컨트롤 파일 복구 또는 재생성

다중화된 컨트롤 파일 중 정상 복사본이 있다면 해당 파일을 손상된 위치에 복사하여 복원합니다.

-- 정상 컨트롤 파일 복사 후 DB 기동 (OS 명령 후 진행)
-- $ cp /u02/oradata/ORCL/control02.ctl /u01/oradata/ORCL/control01.ctl

STARTUP;

-- RMAN을 이용한 컨트롤 파일 복구
-- RMAN 접속 후:
RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;
RMAN> ALTER DATABASE MOUNT;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN RESETLOGS;

백업이 없는 경우 컨트롤 파일을 재생성해야 합니다 (데이터파일과 리두 로그 정보를 정확히 알고 있어야 합니다).

-- 컨트롤 파일 재생성 예시
STARTUP NOMOUNT;

CREATE CONTROLFILE REUSE DATABASE "ORCL" NORESETLOGS ARCHIVELOG
    MAXLOGFILES 16
    MAXLOGMEMBERS 3
    MAXDATAFILES 100
    MAXINSTANCES 8
    MAXLOGHISTORY 292
LOGFILE
    GROUP 1 '/u01/oradata/ORCL/redo01.log' SIZE 50M,
    GROUP 2 '/u01/oradata/ORCL/redo02.log' SIZE 50M,
    GROUP 3 '/u01/oradata/ORCL/redo03.log' SIZE 50M
DATAFILE
    '/u01/oradata/ORCL/system01.dbf',
    '/u01/oradata/ORCL/sysaux01.dbf',
    '/u01/oradata/ORCL/undotbs01.dbf',
    '/u01/oradata/ORCL/users01.dbf'
CHARACTER SET AL32UTF8;

-- 재생성 후 반드시 백업
ALTER DATABASE BACKUP CONTROLFILE TO '/backup/control_backup.ctl';
ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

원인 3 해결: 마이그레이션 후 SPFILE 동기화

-- 현재 SPFILE에서 PFILE 생성 (경로 확인용)
CREATE PFILE='/tmp/init_check.ora' FROM SPFILE;

-- SPFILE 내 컨트롤 파일 경로를 새 환경에 맞게 수정
ALTER SYSTEM SET CONTROL_FILES=
  '/new_path/oradata/ORCL/control01.ctl',
  '/new_path/oradata/ORCL/control02.ctl'
SCOPE=SPFILE;

-- 변경 확인 후 재기동
SHUTDOWN IMMEDIATE;
STARTUP;

-- 정상 기동 확인
SELECT status FROM v$instance;
SELECT name FROM v$controlfile;

예방 방법

1. 컨트롤 파일 다중화(Multiplexing) 및 정기 백업 의무화

컨트롤 파일은 반드시 서로 다른 디스크 또는 스토리지 그룹에 최소 2개 이상 다중화하여 운영해야 합니다. 단일 장애점(SPOF) 제거를 위해 ASM(Automatic Storage Management) 환경에서는 서로 다른 디스크 그룹에 배치하고, RMAN의 BACKUP CURRENT CONTROLFILE 명령을 스케줄링하여 최소 하루 1회 이상 백업이 수행되도록 설정하십시오.

-- 컨트롤 파일 다중화 현황 확인
SELECT name, status FROM v$controlfile;

-- RMAN 컨트롤 파일 자동 백업 활성화 (반드시 설정 권장)
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP FORMAT
      FOR DEVICE TYPE DISK TO '/backup/rman/cf_%F';

2. 파라미터 파일 변경 이력 관리 및 변경 전 백업

CONTROL_FILES 파라미터를 포함한 SPFILE/PFILE 변경 시 반드시 변경 전 사본을 보관하고 변경 이력을 문서화하는 운영 프로세스를 수립해야 합니다. 특히 마이그레이션, 패치, 업그레이드 전후로 파라미터 파일의 스냅샷을 저장하고, 변경 후 v$parameter와 v$controlfile 뷰를 통해 설정이 올바르게 반영되었는지 즉시 검증하는 절차를 표준화하십시오.


관련 에러

  • ORA-00202: 컨트롤 파일 경로 식별 오류로, ORA-00215와 함께 발생하는 경우가 많습니다.
  • ORA-00205: 컨트롤 파일 식별 오류(IDENTIFY CONTROLFILE)로, 파일이 존재하지만 Oracle이 인식하지 못할 때 발생합니다.
  • ORA-00210: 지정된 컨트롤 파일을 열 수 없을 때 발생하며, 퍼미션 문제와 연관됩니다.
  • ORA-00211: 컨트롤 파일이 현재 데이터베이스에 속하지 않을 때 발생하는 에러입니다.
  • ORA-00227: 컨트롤 파일 내부의 블록 손상이 감지되었을 때 발생합니다.

DBMS 에러 코드 시리즈

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

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

댓글 남기기