DBAtlas · Atlas für Datenbankbetrieb

PDB aus einer anderen CDB über einen DB-Link klonen (Remote Clone)

OracleMultitenant

Befehl

-- 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';

Was es tut

Kopiert eine PDB über das Netzwerk per DB-Link von der Quell-CDB in die Ziel-CDB; keine Zwischendateien und kein Unplug nötig.

Wann einsetzen

Um eine PDB auf einen anderen Server/eine andere CDB zu verschieben, eine Testkopie der Produktion auf einem separaten Server zu erstellen oder auf eine CDB mit neuerem Release umzuziehen.

Vorsicht

Quell- und Ziel-CDB müssen bei Endianness, Zeichensatz (oder Ziel AL32UTF8) und Optionen kompatibel sein; eine auf ein neueres Release geklonte PDB öffnet zunächst RESTRICTED und braucht datapatch/Upgrade. Entferne DB-Link und Common User, wenn der Klon fertig ist. Hot Clone erfordert Local Undo + ARCHIVELOG auf der Quelle.

In DBAtlas öffnen →

Verwandte Einträge