12/07/2026
Online_PDB_Cloning_Dababase_link

En esta entrada vamos a explicar cómo clonar una PDB en una base de datos diferente (bbdd contenedora) en un sistema de base de datos diferente, esto se conoce cómo «clonación remota».

Requisitos:

ORIGENDESTINO
host: Oracl21_Primaryhost: Oracle21_dg
Nombre de la base de datos origen (CDB): testsourceNombre de la base de datos destino (CDB): testtarget
Nombre de la base de datos destino (PDB): PDB1_SOURCE Nombre de la base de datos destino (PDB): TEST_TARGETPDB1
Version: 19.3Version: 19.3

Tarea 1: Preparación del entorno de origen

En origen, en la CDB, creamos un usuario con el que clonaremos nuestra Base de datos.

SQL> show con_id

CON_ID
1

SQL> CREATE USER c##testclone IDENTIFIED BY bdconraul CONTAINER=ALL;
SQL> GRANT CREATE SESSION, CREATE PLUGGABLE DATABASE TO c##testclone CONTAINER=ALL;

En la pdb_source1 hay una tabla del esquema RAUL, llamada SOURCETABLE que vamos a replicar al host destino en nuestro caso Oracle21_dg. Comprobamos el contenido de la tabla en origen;


SQL> ALTER SESSION SET CONTAINER=PDB1_SOURCE;


SQL> show con_name

CON_NAME
——————-

PDB1_SOURCE


SQL> show con_id

CON_ID
————
3


SQL> select * from RAUL.SOURCETABLE;

ID NOMBRE
—————
1 Raul
2 Juan
3 Pepe



Tarea 2. Preparación del entorno destino

Añadimos en el tnsnames.ora de la máquina de destino la dirección que apunta a la base de datos CDB de origen, donde nos conectaremos para realizar la copia.

cat tnsnames.ora

SOURCE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle21)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = testsource)
)

)

2.1. La CDB destino debe estar en modo archive log.


archive log list;
SQL> Database log mode Archive Mode
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence 3
Next log sequence to archive 5
Current log sequence 5

En caso de que no esté en modo archive log, los pasos para cambiar de estado son los siguientes:

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
ARCHIVE LOG LIST;

2.2.Asegúrese de que local_undo_enabled esté definido en true en la CDB de destino.

Comprobamos que está a TRUE el (Local UNDO). Esto nos permite, entre otras cosas la clonación en caliente de la PDB.

2.3. Creación DB_LINK que apunte a la base de datos de origen.

Creamos un db_link desde la base de datos destino apuntando la base de datos origen con el que ejecutaremos la copia.

SQL> show con_id
———————–
1

SQL> CREATE PUBLIC DATABASE LINK clone_pdblink CONNECT TO c##testclone identified by bdconraulusing ‘SOURCE‘;

Nota: Nombre del db_link: clone_pdblink usuario conexión BBDD: c##testclone tnsnames name=SOURCE

Comprobamos que el db_link se ha creado correctamente:

Tarea 3.Clonación de la base de datos remota.

Lanzamos el comando de clonación desde la base destino apuntando a la base de datos origen a través del db_lnik creado anteriormente.


SQL> alter session set global_names=false;
Session altered.
SQL> create pluggable database CLONE_PDB1 from PDB1_SOURCE@clone_pdblink;
Pluggable database created.


Tarea 4. Abrir PDB recientemente creada
Por defecto la base de datos (pdb) se crea montada. Abrimos la pdb.

SQL> alter pluggable database test_targetpdb1 open;


Tarea 5. Comprobamos que todo es correcto.

Comprobamos que la PDB y los datos de la misma se han replicado de forma correcta en destino.

YouTube
LinkedIn