PDB ausstecken (Unplug) und in eine andere (oder dieselbe) CDB einstecken (Plug)
OracleMultitenantBefehl
-- 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;Was es tut
Löst die PDB von der CDB und schreibt ihre Metadaten in ein XML-Manifest (oder zusammen mit den Datafiles in ein einzelnes .pdb-Archiv); nach einer Kompatibilitätsprüfung steckt sie sie mit denselben Dateien wieder in die Ziel-CDB ein.
Wann einsetzen
Um eine PDB auf demselben Server in eine CDB mit neuerem Release zu verschieben (Unplug/Plug-Upgrade), zur CDB-Konsolidierung oder für Umzüge, bei denen Klonen über das Netzwerk nicht möglich ist.
Vorsicht
Nach dem Unplug ist die PDB in der Quell-CDB nicht verfügbar (Ausfallzeit). Mit NOCOPY eingesteckte Dateien gehören nun der Ziel-CDB; erstelle vorher eine Kopie auf Dateiebene oder ein RMAN-Backup, um bei einem Fehlschlag zurückzukönnen. Bis Verstöße vom Typ ERROR behoben sind, öffnet die PDB RESTRICTED. Beim erneuten Einstecken in dieselbe CDB kann das Weglassen von AS CLONE einen GUID-Konflikt verursachen.
Verwandte Einträge
- Neue PDB aus PDB$SEED anlegen
- PDB innerhalb derselben CDB klonen (Local / Hot Clone)
- PDB aus einer anderen CDB über einen DB-Link klonen (Remote Clone)
- PDBs öffnen und über CDB-Neustarts hinweg offen halten (SAVE STATE)
- CPU-, Speicher-, I/O- und Storage-Limits je PDB festlegen
- Aktuellen Container bestätigen und alle PDBs vom Root aus abfragen (CDB_ / CONTAINERS)