2026년 10월 19일 | DBMS Error 가이드
이 글에서 다루는 내용
ORA-65206 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.
ORA-65206 cannot convert to a CDB 는?
ORA-65206 에러는 일반 Non-CDB(비컨테이너) 데이터베이스를 CDB(Container Database)로 변환하려 할 때 특정 전제 조건이 충족되지 않아 변환이 불가능한 상태임을 알려주는 에러입니다. Oracle 12c 이후 도입된 멀티테넌트 아키텍처로의 전환 과정에서 주로 발생하며, 변환 작업을 시작하기 전에 데이터베이스 상태가 특정 요구 사항을 만족하지 못할 경우 이 에러가 트리거됩니다. DBA라면 Non-CDB를 PDB(Pluggable Database)로 마이그레이션하거나 CDB 환경으로 전환하는 작업 중에 이 에러를 마주칠 수 있으며, 사전 점검을 철저히 수행해야 이를 피할 수 있습니다.
주요 발생 원인
1. 데이터베이스가 ARCHIVELOG 모드가 아닌 경우
CDB로의 변환 작업은 데이터베이스가 ARCHIVELOG 모드로 운영 중일 것을 요구합니다. NOARCHIVELOG 모드 상태에서 변환 스크립트를 실행하면 Oracle은 데이터 일관성을 보장할 수 없다고 판단하여 ORA-65206을 발생시킵니다. 특히 운영 중인 데이터베이스를 변환할 때 이 조건을 빠뜨리는 경우가 많으므로 반드시 사전에 확인해야 합니다.
2. 데이터베이스가 READ WRITE 모드로 OPEN되어 있지 않은 경우 또는 RESTRICTED SESSION 활성화
변환 프로세스는 데이터베이스가 정상적으로 READ WRITE 모드로 OPEN된 상태이거나, 반대로 특정 단계에서 RESTRICTED 모드를 요구하는 등 엄격한 상태 조건이 있습니다. RESTRICTED SESSION이 예기치 않게 활성화되어 있거나 데이터베이스가 READ ONLY 또는 MOUNT 상태일 경우 변환이 거부됩니다. 또한 Active 트랜잭션이 남아 있거나 세션이 정리되지 않은 경우에도 이 에러가 발생할 수 있습니다.
3. Oracle 버전 또는 호환성 설정(COMPATIBLE 파라미터) 불충족
CDB 변환을 위해서는 COMPATIBLE 초기화 파라미터가 최소 12.0.0.0 이상으로 설정되어 있어야 합니다. 이전 버전에서 업그레이드된 데이터베이스의 경우 COMPATIBLE 파라미터가 낮게 설정된 채로 남아 있을 수 있으며, 이 경우 CDB 기능 자체를 활성화할 수 없어 변환이 실패합니다. 또한 일부 Deprecated 기능이나 구형 데이터 딕셔너리 구조가 잔존하는 경우에도 변환 도구가 이를 감지하고 에러를 반환합니다.
해결 방법
원인 1: ARCHIVELOG 모드 활성화
현재 아카이브 로그 모드를 확인하고, NOARCHIVELOG 상태라면 아래 절차로 전환합니다.
-- 현재 아카이브 로그 모드 확인
SELECT LOG_MODE FROM V$DATABASE;
-- ARCHIVELOG 모드로 전환 (데이터베이스 재시작 필요)
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
-- 전환 후 확인
SELECT LOG_MODE FROM V$DATABASE;
-- 결과: ARCHIVELOG 가 출력되어야 함
-- 아카이브 로그 목적지 설정 (필요시)
ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION=/arch/oradata' SCOPE=BOTH;
원인 2: 데이터베이스 상태 점검 및 정리
-- 현재 데이터베이스 OPEN 모드 및 상태 확인
SELECT NAME, OPEN_MODE, RESTRICTED FROM V$DATABASE;
-- RESTRICTED SESSION 여부 확인
SELECT VALUE FROM V$PARAMETER WHERE NAME = 'restricted_session';
-- RESTRICTED SESSION 해제 (활성화된 경우)
ALTER SYSTEM DISABLE RESTRICTED SESSION;
-- Active 세션 확인 및 정리
SELECT SID, SERIAL#, USERNAME, STATUS, PROGRAM
FROM V$SESSION
WHERE USERNAME IS NOT NULL
AND STATUS = 'ACTIVE';
-- 특정 세션 강제 종료 (필요 시)
ALTER SYSTEM KILL SESSION '&SID, &SERIAL#' IMMEDIATE;
-- 미완료 트랜잭션 확인
SELECT COUNT(*) FROM V$TRANSACTION;
-- READ WRITE 모드 확인 후, MOUNT 상태이면 OPEN
ALTER DATABASE OPEN READ WRITE;
원인 3: COMPATIBLE 파라미터 확인 및 수정
-- 현재 COMPATIBLE 파라미터 확인
SHOW PARAMETER COMPATIBLE;
-- 또는
SELECT NAME, VALUE FROM V$PARAMETER WHERE NAME = 'compatible';
-- COMPATIBLE 값 변경 (12.0.0.0 이상 설정 필요, spfile 사용 권장)
ALTER SYSTEM SET COMPATIBLE = '12.2.0' SCOPE=SPFILE;
-- 변경 후 데이터베이스 재시작
SHUTDOWN IMMEDIATE;
STARTUP;
-- 재확인
SHOW PARAMETER COMPATIBLE;
-- Non-CDB를 CDB로 변환하기 위한 스크립트 실행 전 사전 점검
-- Oracle 제공 noncdb_to_pdb.sql 실행 예시
-- (SYSDBA 권한으로 접속 후 실행)
@$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
종합 사전 점검 쿼리
CDB 변환을 시도하기 전에 아래 쿼리로 전체 상태를 한번에 점검하는 것을 권장합니다.
-- 변환 전 사전 점검 종합 쿼리
SELECT
D.NAME AS DB_NAME,
D.DB_UNIQUE_NAME AS UNIQUE_NAME,
D.LOG_MODE AS ARCHIVE_MODE, -- ARCHIVELOG 이어야 함
D.OPEN_MODE AS OPEN_MODE, -- READ WRITE 이어야 함
D.CDB AS IS_CDB, -- NO 이어야 함 (변환 전)
D.RESTRICTED AS RESTRICTED_MODE, -- NO 이어야 함
P.VALUE AS COMPATIBLE_VALUE -- 12.0.0.0 이상
FROM V$DATABASE D,
V$PARAMETER P
WHERE P.NAME = 'compatible';
-- Timezone 버전 확인 (버전 불일치 시 변환 실패 가능)
SELECT VERSION FROM V$TIMEZONE_FILE;
-- Invalid 오브젝트 확인 (변환 전 정리 권장)
SELECT COUNT(*) AS INVALID_OBJECTS
FROM DBA_OBJECTS
WHERE STATUS = 'INVALID';
예방 방법
1. 변환 전 Oracle 공식 Pre-Upgrade 도구 실행 의무화
Oracle이 제공하는 preupgrade.jar 또는 pre_migrate_to_pdb.sql 스크립트를 변환 작업 전에 반드시 실행하여 잠재적인 문제를 사전에 탐지하십시오. 이 도구는 COMPATIBLE 파라미터, ARCHIVELOG 모드, Invalid 오브젝트, Timezone 버전 등 수십 가지 항목을 자동으로 점검해 주므로 ORA-65206을 포함한 다양한 변환 에러를 예방하는 데 크게 도움이 됩니다. 점검 결과 리포트를 분석하고, 경고 및 오류 항목을 모두 해소한 후에 실제 변환 작업을 진행하는 것이 Best Practice입니다.
2. 변환 작업 전 표준 체크리스트 수립 및 테스트 환경 검증 선행
운영 환경에서 변환을 수행하기 전에 동일한 구성의 테스트 환경(Dev 또는 Staging)에서 먼저 변환 절차를 완전히 수행하여 문제 없음을 검증하십시오. 또한 팀 내 표준 체크리스트(ARCHIVELOG 모드, COMPATIBLE 값, 세션 정리, 백업 완료 여부, INVALID 오브젝트 수 등)를 문서화하여 모든 DBA가 동일한 절차를 따르도록 프로세스를 표준화해야 합니다. 이는 인적 오류를 줄이고 반복적인 에러 발생을 원천적으로 방지하는 가장 효과적인 방법입니다.
관련 에러
- ORA-65005: CDB 관련 필수 파일 누락 시 발생하며, CDB 생성 또는 변환 과정에서 함께 나타날 수 있습니다.
- ORA-65011: Pluggable Database가 존재하지 않을 때 발생하며, PDB 연결 작업 중 ORA-65206과 연계되어 나타납니다.
- ORA-17628: 외부 파일 참조 오류로, CDB 변환 시 데이터 파일 경로 문제와 관련하여 함께 발생하는 경우가 있습니다.
- ORA-00439: 특정 기능(Feature)이 활성화되지 않은 경우 발생하며, 멀티테넌트 옵션 라이선스 미보유 시 CDB 변환 시도 중 나타날 수 있습니다.
주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.
본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.