PDB를 unplug하여 다른(또는 같은) CDB에 plug
Oracle멀티테넌트명령어
-- SOURCE CDB: close and unplug to an XML manifest
ALTER PLUGGABLE DATABASE <pdb> CLOSE IMMEDIATE;
ALTER PLUGGABLE DATABASE <pdb> UNPLUG INTO '/u01/stage/<pdb>.xml';
-- (Single-file archive: UNPLUG INTO '/u01/stage/<pdb>.pdb' - includes datafiles, 12.2+)
DROP PLUGGABLE DATABASE <pdb> KEEP DATAFILES;
-- TARGET CDB: check compatibility first
SET SERVEROUTPUT ON
DECLARE
l_ok BOOLEAN;
BEGIN
l_ok := DBMS_PDB.CHECK_PLUG_COMPATIBILITY(
pdb_descr_file => '/u01/stage/<pdb>.xml',
pdb_name => '<pdb>');
DBMS_OUTPUT.PUT_LINE(CASE WHEN l_ok THEN 'COMPATIBLE' ELSE 'NOT COMPATIBLE - see PDB_PLUG_IN_VIOLATIONS' END);
END;
/
SELECT name, cause, type, status, message
FROM pdb_plug_in_violations
WHERE name = UPPER('<pdb>') AND status <> 'RESOLVED';
-- NOCOPY if the files stay in place, COPY FILE_NAME_CONVERT if they move:
CREATE PLUGGABLE DATABASE <pdb> USING '/u01/stage/<pdb>.xml' NOCOPY TEMPFILE REUSE;
-- From a .pdb archive: CREATE PLUGGABLE DATABASE <pdb> USING '/u01/stage/<pdb>.pdb'
-- FILE_NAME_CONVERT = ('/u01/stage/', '/u02/oradata/<cdb>/<pdb>/');
ALTER PLUGGABLE DATABASE <pdb> OPEN;하는 일
PDB를 CDB에서 분리하고 메타데이터를 XML manifest(또는 데이터 파일을 포함한 단일 .pdb 아카이브)로 기록한다. 호환성 점검 후 같은 파일로 대상 CDB에 다시 연결한다.
사용 시점
같은 서버의 더 새로운 릴리스 CDB로 PDB를 옮길 때(unplug/plug 업그레이드), CDB 통합 시, 네트워크 복제가 불가능한 이전 시.
주의
unplug 후 원본 CDB에서 PDB를 사용할 수 없다(다운타임). NOCOPY로 plug한 파일은 이제 대상 CDB에 속하므로 실패 시 되돌릴 수 있도록 먼저 파일 수준 사본이나 RMAN 백업을 확보한다. ERROR 유형 위반이 해결될 때까지 PDB는 RESTRICTED로 열린다. 같은 CDB에 다시 plug할 때 AS CLONE을 생략하면 GUID 충돌이 발생할 수 있다.