DBAtlas · Atlas de operaciones de bases de datos

Desconectar (unplug) una PDB y conectarla (plug) en otra CDB (o en la misma)

OracleMultitenant

Comando

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

Qué hace

Separa la PDB de la CDB y escribe sus metadatos en un manifiesto XML (o en un único archivo .pdb junto con los datafiles); tras una comprobación de compatibilidad la vuelve a conectar en la CDB de destino con los mismos archivos.

Cuándo usarlo

Para mover una PDB a una CDB de versión más nueva en el mismo servidor (upgrade por unplug/plug), para consolidar CDB o para traslados donde no es posible clonar por la red.

Precaución

Tras el unplug, la PDB no está disponible en la CDB de origen (tiempo de inactividad). Los archivos conectados con NOCOPY pasan a pertenecer a la CDB de destino; tome antes una copia a nivel de archivo o un backup de RMAN para poder volver atrás si falla. Hasta resolver las violaciones de tipo ERROR, la PDB se abre en RESTRICTED. Al volver a conectarla en la misma CDB, omitir AS CLONE puede causar un conflicto de GUID.

Abrir en DBAtlas →

Relacionado