DB link로 다른 CDB에서 PDB 복제(remote clone)
Oracle멀티테넌트명령어
-- 1) In the SOURCE CDB, a common user:
CREATE USER c##clone_user IDENTIFIED BY "<password>" CONTAINER = ALL;
GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##clone_user CONTAINER = ALL;
-- 2) In the TARGET CDB root, DB link and test:
CREATE DATABASE LINK clone_link
CONNECT TO c##clone_user IDENTIFIED BY "<password>"
USING '//<source_host>:1521/<source_cdb_service>';
SELECT * FROM dual@clone_link;
-- 3) Clone and open:
CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb>@clone_link
FILE_NAME_CONVERT = ('/<pdb>/', '/<new_pdb>/');
ALTER PLUGGABLE DATABASE <new_pdb> OPEN;
-- 4) Violations (version, options, parameters, patches):
SELECT name, cause, type, message
FROM pdb_plug_in_violations
WHERE name = UPPER('<new_pdb>') AND status <> 'RESOLVED';하는 일
DB link를 통해 네트워크로 원본 CDB의 PDB를 대상 CDB로 복사한다. 중간 파일이나 unplug가 필요 없다.
사용 시점
PDB를 다른 서버/CDB로 옮기거나, 별도 서버에 운영 환경의 테스트 사본을 만들거나, 더 새로운 릴리스의 CDB로 이전할 때.
주의
원본과 대상 CDB는 endianness, 문자 집합(또는 대상이 AL32UTF8), 옵션이 호환되어야 한다. 더 새로운 릴리스로 복제된 PDB는 처음에 RESTRICTED로 열리며 datapatch/upgrade가 필요하다. 복제가 끝나면 DB link와 common user를 삭제한다. hot clone은 원본에 local undo + ARCHIVELOG가 필요하다.