Clonar um PDB no mesmo CDB (local / hot clone)
OracleMultitenantComando
-- Hot clone prerequisites: local undo + ARCHIVELOG
SELECT property_value AS local_undo
FROM database_properties WHERE property_name = 'LOCAL_UNDO_ENABLED';
SELECT log_mode FROM v$database;
CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb>
FILE_NAME_CONVERT = ('/<pdb>/', '/<new_pdb>/');
-- OMF/ASM: CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb> CREATE_FILE_DEST = '+DATA';
ALTER PLUGGABLE DATABASE <new_pdb> OPEN;
SELECT name, open_mode FROM v$pdbs WHERE name = UPPER('<new_pdb>');O que faz
Cria um novo PDB no mesmo CDB copiando os datafiles do PDB de origem; com local undo e ARCHIVELOG pode rodar com a origem aberta em leitura e escrita (hot clone).
Quando usar
Para criar uma cópia de teste/desenvolvimento de um PDB de produção, ensaiar um upgrade ou patch ou fazer uma cópia rápida antes de uma mudança arriscada.
Atenção
A cópia gera I/O extra na origem e precisa no destino de tanto espaço quanto a origem. No modo shared undo ou em NOARCHIVELOG a origem deve estar READ ONLY (documentação do 19c). O clone contém dados de produção: verifique mascaramento, DB links, jobs (DBMS_SCHEDULER) e conexões com sistemas externos antes de abri-lo.
Relacionados
- Criar um novo PDB a partir do PDB$SEED
- Clonar um PDB de outro CDB via DB link (remote clone)
- Fazer unplug de um PDB e plug em outro (ou no mesmo) CDB
- 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)