Clonar una PDB desde otra CDB por un DB link (clon remoto)
OracleMultitenantComando
-- 1) In the SOURCE CDB, a common user:
CREATE USER c##clone_user IDENTIFIED BY "<password>" CONTAINER = ALL;
GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##clone_user CONTAINER = ALL;
-- 2) In the TARGET CDB root, DB link and test:
CREATE DATABASE LINK clone_link
CONNECT TO c##clone_user IDENTIFIED BY "<password>"
USING '//<source_host>:1521/<source_cdb_service>';
SELECT * FROM dual@clone_link;
-- 3) Clone and open:
CREATE PLUGGABLE DATABASE <new_pdb> FROM <pdb>@clone_link
FILE_NAME_CONVERT = ('/<pdb>/', '/<new_pdb>/');
ALTER PLUGGABLE DATABASE <new_pdb> OPEN;
-- 4) Violations (version, options, parameters, patches):
SELECT name, cause, type, message
FROM pdb_plug_in_violations
WHERE name = UPPER('<new_pdb>') AND status <> 'RESOLVED';Qué hace
Copia una PDB de la CDB de origen a la CDB de destino por la red a través de un DB link; no necesita archivos intermedios ni unplug.
Cuándo usarlo
Para mover una PDB a otro servidor/CDB, crear una copia de prueba de producción en un servidor aparte o pasar a una CDB de una versión más nueva.
Precaución
Las CDB de origen y destino deben ser compatibles en endianness, juego de caracteres (o destino AL32UTF8) y opciones; una PDB clonada a una versión más nueva se abre primero en RESTRICTED y necesita datapatch/upgrade. Elimine el DB link y el usuario común al terminar el clon. El hot clone requiere local undo + ARCHIVELOG en el origen.
Relacionado
- Crear una PDB nueva desde PDB$SEED
- Clonar una PDB dentro de la misma CDB (clon local / hot clone)
- Desconectar (unplug) una PDB y conectarla (plug) en otra CDB (o en la misma)
- Abrir PDB y mantenerlas abiertas tras reinicios de la CDB (SAVE STATE)
- Definir límites de CPU, memoria, I/O y almacenamiento por PDB
- Confirmar en qué contenedor está y consultar todas las PDB desde el root (CDB_ / CONTAINERS)