2026년 07월 07일 | DBMS Error 가이드
이 글에서 다루는 내용
ORA-01126 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.
ORA-01126 database must be mounted EXCLUSIVE and not open for this operation 는?
ORA-01126 에러는 특정 Oracle 데이터베이스 관리 작업을 수행할 때 데이터베이스가 EXCLUSIVE 모드로 마운트(MOUNT) 되어 있어야 하고, 동시에 OPEN 상태가 아니어야 한다는 조건을 충족하지 못했을 때 발생합니다. 즉, 해당 작업은 데이터베이스가 완전히 열려 있는(OPEN) 상태나 다른 인스턴스와 공유(SHARED) 마운트된 상태에서는 실행할 수 없습니다. 주로 데이터파일 이름 변경, 아카이브 모드 전환, 리두 로그 그룹 추가 등 데이터베이스의 물리적 구조를 변경하는 DDL 작업 중에 이 에러를 접하게 됩니다.
주요 발생 원인
- 데이터베이스가 OPEN 상태에서 마운트 전용 작업 실행
가장 흔한 원인으로, 데이터베이스가 정상적으로 열려 있는(OPEN) 상태에서 ARCHIVELOG 모드 변경(ALTER DATABASE ARCHIVELOG) 또는 데이터파일 이름 변경(ALTER DATABASE RENAME FILE) 같은 명령을 실행할 때 발생합니다. 이러한 명령들은 데이터베이스가 MOUNT 단계에 머물러 있어야만 실행이 허용되며, OPEN 상태에서는 Oracle 엔진이 이를 차단하고 ORA-01126을 반환합니다.
- RAC(Real Application Clusters) 환경에서 SHARED 마운트 상태
RAC 환경에서는 여러 인스턴스가 동시에 동일한 데이터베이스를 마운트할 수 있습니다. 그러나 일부 관리 작업은 오직 하나의 인스턴스만 데이터베이스를 마운트한 EXCLUSIVE 모드에서만 허용됩니다. 다른 인스턴스가 이미 데이터베이스를 마운트하거나 열고 있는 상태에서 해당 작업을 시도하면 ORA-01126 에러가 발생합니다.
- 자동화 스크립트나 DBA 도구에서 데이터베이스 상태 확인 누락
운영 자동화 스크립트 또는 외부 DBA 툴(예: RMAN, 서드파티 백업 솔루션)이 현재 데이터베이스 상태를 사전에 확인하지 않고 MOUNT 전용 명령을 실행할 때 발생합니다. 특히 스크립트가 환경에 따라 다르게 동작하도록 설계되어 있지 않으면, OPEN 상태의 데이터베이스에 대해 잘못된 명령을 날려 이 에러를 유발합니다.
해결 방법
원인 1 해결: 데이터베이스를 MOUNT 상태로 전환 후 작업
데이터베이스가 OPEN 상태라면, 먼저 종료 후 MOUNT 모드로만 시작해야 합니다.
-- 1단계: 현재 데이터베이스 상태 확인
SELECT STATUS FROM V$INSTANCE;
-- 2단계: 데이터베이스 정상 종료
SHUTDOWN IMMEDIATE;
-- 3단계: MOUNT 모드로 시작
STARTUP MOUNT;
-- 4단계: ARCHIVELOG 모드로 변경 (예시)
ALTER DATABASE ARCHIVELOG;
-- 5단계: 데이터베이스 OPEN
ALTER DATABASE OPEN;
-- 6단계: 아카이브 모드 확인
ARCHIVE LOG LIST;
데이터파일 이름 변경 작업의 경우도 동일한 절차를 따릅니다.
-- MOUNT 상태에서 데이터파일 이름 변경
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
-- OS 레벨에서 파일을 실제로 이동한 뒤 실행
ALTER DATABASE RENAME FILE
'/old/path/datafile01.dbf'
TO '/new/path/datafile01.dbf';
ALTER DATABASE OPEN;
원인 2 해결: RAC 환경에서 다른 인스턴스 종료 후 EXCLUSIVE 마운트
RAC 환경에서는 모든 다른 인스턴스를 먼저 종료한 뒤, 단일 인스턴스만 EXCLUSIVE 마운트를 수행해야 합니다.
-- 다른 인스턴스(node2) 종료 (node2에서 실행)
SHUTDOWN IMMEDIATE;
-- 현재 인스턴스(node1)에서 EXCLUSIVE MOUNT 확인
-- V$INSTANCE의 PARALLEL이 NO인지 확인
SELECT INSTANCE_NAME, STATUS, PARALLEL
FROM V$INSTANCE;
-- EXCLUSIVE MOUNT 상태에서 필요한 작업 수행
ALTER DATABASE NOARCHIVELOG;
-- 작업 완료 후 OPEN
ALTER DATABASE OPEN;
원인 3 해결: 스크립트에 사전 상태 체크 로직 추가
자동화 스크립트에서는 반드시 현재 데이터베이스 상태를 먼저 확인하는 로직을 포함해야 합니다.
-- 데이터베이스 상태를 먼저 확인하는 예방적 스크립트
DECLARE
v_status VARCHAR2(20);
BEGIN
SELECT STATUS INTO v_status FROM V$INSTANCE;
IF v_status = 'OPEN' THEN
DBMS_OUTPUT.PUT_LINE('ERROR: Database is OPEN. '
|| 'Please shutdown and restart in MOUNT mode.');
RAISE_APPLICATION_ERROR(-20001,
'Database must be in MOUNT mode for this operation.');
ELSIF v_status = 'MOUNTED' THEN
DBMS_OUTPUT.PUT_LINE('OK: Database is MOUNTED. Proceeding...');
-- 여기서 실제 작업 실행
EXECUTE IMMEDIATE 'ALTER DATABASE ARCHIVELOG';
DBMS_OUTPUT.PUT_LINE('ARCHIVELOG mode enabled successfully.');
ELSE
DBMS_OUTPUT.PUT_LINE('ERROR: Unexpected database status: ' || v_status);
END IF;
END;
/
예방 방법
- 작업 전 표준 SOP(Standard Operating Procedure) 체크리스트 적용
MOUNT 전용 작업을 수행하기 전에 반드시 SELECT STATUS FROM V$INSTANCE와 SELECT PARALLEL FROM V$INSTANCE를 통해 현재 상태와 모드를 확인하는 체크리스트를 팀 내 SOP로 문서화하고, 모든 DBA가 이를 준수하도록 합니다. RAC 환경이라면 GV$INSTANCE를 통해 모든 노드의 상태를 한 번에 조회하는 습관을 갖는 것이 좋습니다.
“`sql
— 단일 인스턴스 상태 확인
SELECT INSTANCE_NAME, STATUS, DATABASE_STATUS
FROM V$INSTANCE;
— RAC 전체 노드 상태 확인
SELECT INST_ID, INSTANCE_NAME, STATUS, PARALLEL
FROM GV$INSTANCE
ORDER BY INST_ID;
“`
- 변경 관리(Change Management) 프로세스와 유지보수 창(Maintenance Window) 확보
MOUNT 상태에서만 가능한 작업(아카이브 모드 변경, 제어파일 재생성 등)은 반드시 사전에 계획된 유지보수 창 내에서만 수행하도록 프로세스를 정립합니다. 이를 통해 서비스 중인 데이터베이스에 실수로 SHUTDOWN 명령을 날리는 사고를 방지하고, 작업 전/후 상태를 명확히 기록하여 이력 관리를 철저히 합니다.
관련 에러
- ORA-01507:
database not mounted— 데이터베이스가 마운트조차 되지 않은 상태에서 마운트 이후 단계의 명령을 실행할 때 발생합니다. - ORA-01109:
database not open— 데이터베이스가 OPEN 상태가 아닌데 OPEN 상태를 요구하는 명령을 실행했을 때 나타납니다. - ORA-01531:
a database already open by the instance— 이미 인스턴스가 데이터베이스를 열고 있는 상태에서 다시 OPEN을 시도할 때 발생합니다. - ORA-01102:
cannot mount database in EXCLUSIVE mode— 다른 인스턴스가 이미 마운트하고 있어 EXCLUSIVE 마운트가 불가능할 때 나타나며, ORA-01126과 함께 RAC 환경에서 자주 짝으로 등장합니다.
주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.
본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.