2026년 10월 17일 | DBMS Error 가이드
이 글에서 다루는 내용
ORA-65122 에러의 원인 분석, 해결 SQL, 예방 방법을 실무 관점에서 정리합니다.
ORA-65122 Pluggable database GUID conflicts with the GUID of an existing container 는?
ORA-65122 에러는 Oracle Multitenant 환경에서 Pluggable Database(PDB)를 플러그인(plug-in)하거나 복제(clone)하려 할 때, 대상 CDB(Container Database) 내에 이미 동일한 GUID를 가진 컨테이너가 존재할 경우 발생합니다. GUID(Globally Unique Identifier)는 각 PDB를 식별하는 고유 식별자로, 같은 CDB 내에서 반드시 유일해야 합니다. 주로 동일한 PDB를 백업에서 두 번 복원하거나, 동일한 소스에서 복제한 PDB를 같은 CDB에 두 번 플러그인하려 할 때 이 에러가 발생합니다.
주요 발생 원인
- 동일 소스의 PDB를 같은 CDB에 중복 플러그인
가장 흔한 원인으로, 동일한 .xml 매니페스트 파일과 데이터 파일을 사용해 하나의 CDB에 PDB를 두 번 이상 플러그인하려 할 때 발생합니다. Oracle은 PDB 생성 시 GUID를 부여하며, 동일한 소스에서 나온 PDB는 동일한 GUID를 가지기 때문에 두 번째 플러그인 시도에서 충돌이 발생합니다. 예를 들어, 운영 PDB의 클론을 개발 환경에 붙여넣기한 후 동일 클론을 또 다른 목적으로 같은 CDB에 다시 삽입하려는 경우가 대표적입니다.
- 백업/복원(RMAN Duplicate 또는 DataPump) 후 GUID 미갱신
RMAN의 DUPLICATE 명령이나 DataPump를 이용한 복원 작업 후, 새로운 PDB에 새 GUID가 부여되지 않은 상태에서 플러그인을 시도할 때 발생합니다. 특히 수동으로 XML 파일을 편집하거나 복사하는 과정에서 GUID 갱신 절차를 누락하는 경우가 많습니다. 이 경우 복원된 PDB는 원본과 동일한 GUID를 유지하게 되어, 원본이 이미 CDB에 존재한다면 충돌이 불가피합니다.
- PDB 이동(Relocate) 또는 Remote Clone 중 GUID 처리 오류
Oracle 12.2 이상에서 지원하는 PDB Relocate 또는 Remote Clone 기능을 사용할 때, 네트워크 오류나 작업 중단으로 인해 중간 상태가 남아 있는 경우 동일 GUID의 PDB가 중복 등록될 수 있습니다. 작업이 완전히 롤백되지 않은 상태에서 재시도하면 CDB 딕셔너리에 이미 동일 GUID가 등록되어 있어 에러가 발생합니다. 이런 상황은 특히 CDB 간 PDB 마이그레이션 자동화 스크립트를 사용할 때 자주 관찰됩니다.
해결 방법
원인 1 해결: 기존 PDB GUID 확인 및 충돌 PDB 식별
먼저 현재 CDB에 등록된 PDB의 GUID를 확인하여 충돌하는 대상을 파악합니다.
-- CDB 내 모든 컨테이너의 GUID 확인
SELECT CON_ID, NAME, DBID, GUID
FROM V$CONTAINERS
ORDER BY CON_ID;
-- 특정 GUID로 충돌 컨테이너 검색
SELECT CON_ID, NAME, GUID
FROM V$CONTAINERS
WHERE GUID = HEXTORAW('여기에_문제가_된_GUID_값_입력');
충돌하는 PDB가 이미 CDB 내에 존재한다면, 해당 PDB를 삭제하거나 다른 CDB에 플러그인하는 방향으로 접근해야 합니다.
-- 충돌 PDB 강제 삭제 (주의: 데이터 손실 가능)
ALTER PLUGGABLE DATABASE pdb_중복명 CLOSE IMMEDIATE;
DROP PLUGGABLE DATABASE pdb_중복명 INCLUDING DATAFILES;
원인 2 해결: 새 GUID를 부여한 후 플러그인
동일 소스 PDB를 같은 CDB에 다시 플러그인해야 하는 경우, Oracle 19c 이상에서는 CREATE PLUGGABLE DATABASE ... AS NEW 또는 GUID 재생성 옵션을 활용할 수 있습니다. 그 전에 XML 매니페스트의 GUID를 새로 생성된 값으로 교체해야 합니다.
-- 새 GUID 생성 (SYS_GUID() 활용)
SELECT RAWTOHEX(SYS_GUID()) AS NEW_GUID FROM DUAL;
-- XML 파일 수정 후 플러그인 (새 PDB 이름 및 새 GUID 적용)
CREATE PLUGGABLE DATABASE new_pdb_name
USING '/path/to/pdb_manifest.xml'
COPY
FILE_NAME_CONVERT = ('/old_path/', '/new_path/');
> 주의: XML 파일 내 태그의 값을 위에서 생성한 새 GUID 값으로 반드시 교체한 후 플러그인 명령을 실행해야 합니다.
원인 3 해결: 불완전한 PDB Relocate/Clone 정리 후 재시도
중단된 작업으로 인해 불완전한 상태의 PDB가 남아 있다면, 먼저 해당 PDB를 정리합니다.
-- 불완전한 상태의 PDB 확인
SELECT PDB_NAME, STATUS, CON_ID
FROM DBA_PDBS
WHERE STATUS IN ('UNUSABLE', 'NEW');
-- 불완전한 PDB 제거
ALTER PLUGGABLE DATABASE 불완전한_pdb CLOSE ABORT;
DROP PLUGGABLE DATABASE 불완전한_pdb INCLUDING DATAFILES;
-- CDB 딕셔너리 정합성 확인
SELECT * FROM CDB_ERRORS WHERE CON_ID > 2;
정리 후 새로운 GUID가 부여된 상태에서 Clone 또는 Relocate 작업을 재시도합니다.
-- 원격 CDB에서 PDB Clone (새 GUID 자동 부여)
CREATE PLUGGABLE DATABASE cloned_pdb
FROM source_pdb@db_link
FILE_NAME_CONVERT = ('/source_path/', '/target_path/');
예방 방법
- PDB 플러그인 전 GUID 사전 검증 루틴 구축
PDB를 플러그인하기 전에 반드시 대상 CDB의 V$CONTAINERS와 XML 매니페스트의 GUID를 비교하는 검증 스크립트를 운영 프로세스에 포함시키세요. 자동화 배포 파이프라인(CI/CD, 스크립트)에서 PDB 플러그인 작업을 수행할 경우, 플러그인 직전에 아래와 같은 사전 검증 쿼리를 실행하도록 강제하는 것이 좋습니다.
“`sql
— 플러그인 전 GUID 충돌 여부 사전 점검
SELECT COUNT(*) AS CONFLICT_COUNT
FROM V$CONTAINERS
WHERE GUID = HEXTORAW(‘&TARGET_GUID’);
— 결과가 0이어야 플러그인 진행 가능
“`
- PDB Clone/Duplicate 시 표준 명명 규칙과 GUID 재생성 절차 문서화
동일 소스에서 여러 PDB를 생성하는 경우, 반드시 고유한 PDB 이름과 함께 GUID를 재생성하는 절차를 내부 표준 운영 절차서(SOP)에 명시하고 팀 전체가 준수하도록 해야 합니다. 특히 개발, 테스트, 스테이징 환경에서 운영 PDB를 자주 복제하는 조직에서는 GUID 재생성을 필수 단계로 자동화 스크립트에 내장시키는 것을 강력히 권장합니다.
관련 에러
- ORA-65011: Pluggable database does not exist — PDB 이름이 잘못 지정되었거나 존재하지 않을 때 발생하며, 플러그인 명령의 PDB 이름 오류와 함께 나타날 수 있습니다.
- ORA-65016: FILE_NAME_CONVERT must be specified — 파일 경로 충돌 시 발생하며, ORA-65122와 함께 플러그인 실패 원인이 되기도 합니다.
- ORA-17628: Oracle error 17629 returned by remote Oracle server — Remote Clone 또는 Relocate 작업 중 네트워크 또는 원격 CDB 연결 오류로 인해 GUID 처리 실패와 연계될 수 있습니다.
- ORA-65169: Error encountered while attempting to copy file — 파일 복사 실패로 인해 PDB 플러그인이 중단되면서 GUID 충돌 상태를 유발할 수 있는 관련 에러입니다.
주요 DBMS error code를 정리하는 시리즈입니다.
블로그 홈에서 다른 에러도 확인하세요.
본 포스트는 AI가 생성한 기술 가이드입니다. 운영 환경 적용 전 충분한 검토를 권장합니다.