DBAtlas · 데이터베이스 운영 아틀라스

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가 필요하다.

DBAtlas에서 열기 →

관련 항목