DBAtlas · Atlas d'exploitation des bases de données

Débrancher une PDB et la brancher dans une autre CDB (ou la même)

OracleMultitenant

Commande

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

Ce que fait la commande

Détache la PDB de la CDB et écrit ses métadonnées dans un manifeste XML (ou dans une archive .pdb unique avec les datafiles) ; après une vérification de compatibilité, la rebranche dans la CDB cible avec les mêmes fichiers.

Quand l'utiliser

Pour déplacer une PDB vers une CDB de version plus récente sur le même serveur (mise à niveau unplug/plug), pour la consolidation de CDB, ou pour des déplacements où le clonage par le réseau n'est pas possible.

Attention

Après l'unplug, la PDB est indisponible dans la CDB source (interruption). Les fichiers branchés avec NOCOPY appartiennent désormais à la CDB cible ; faites d'abord une copie au niveau fichier ou une sauvegarde RMAN pour pouvoir revenir en arrière en cas d'échec. Tant que les violations de type ERROR ne sont pas résolues, la PDB s'ouvre en RESTRICTED. En la rebranchant dans la même CDB, omettre AS CLONE peut provoquer un conflit de GUID.

Ouvrir dans DBAtlas →

Voir aussi