Fazer unplug de um PDB e plug em outro (ou no mesmo) CDB
OracleMultitenantComando
-- 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;O que faz
Desconecta o PDB do CDB e grava seus metadados em um manifesto XML (ou em um único arquivo .pdb junto com os datafiles); após uma verificação de compatibilidade, conecta-o de volta ao CDB de destino com os mesmos arquivos.
Quando usar
Para mover um PDB para um CDB de versão mais nova no mesmo servidor (upgrade via unplug/plug), para consolidação de CDBs ou para migrações em que clonar pela rede não é possível.
Atenção
Após o unplug, o PDB fica indisponível no CDB de origem (downtime). Arquivos conectados com NOCOPY passam a pertencer ao CDB de destino; faça antes uma cópia em nível de arquivo ou um backup RMAN para poder voltar em caso de falha. Enquanto as violações do tipo ERROR não forem resolvidas, o PDB abre RESTRICTED. Ao reconectar no mesmo CDB, omitir AS CLONE pode causar conflito de GUID.
Relacionados
- Criar um novo PDB a partir do PDB$SEED
- Clonar um PDB no mesmo CDB (local / hot clone)
- Clonar um PDB de outro CDB via DB link (remote clone)
- Abrir PDBs e mantê-los abertos após restarts do CDB (SAVE STATE)
- Definir limites de CPU, memória, I/O e storage por PDB
- Confirmar em qual container você está e consultar todos os PDBs a partir do root (CDB_ / CONTAINERS)