02/08/2026
Ссылка на онлайн-базу данных клонирования PDB

В этой статье расскажем, как клонировать PDB другую базу данных (контейнерную БД) в другой системе управления базами данных; этот процесс называется «удаленным клонированием».

Требования:

ПРОИСХОЖДЕНИЕНАПРАВЛЕНИЕ
хост: Oracl21_Primaryхост: Oracle21_dg
Название исходной базы данных (CDB): testsourceНазвание целевой базы данных (CDB): testtarget
Имя целевой базы данных (PDB): PDB1_SOURCE Имя целевой базы данных (PDB): TEST_TARGETPDB1
Версия: 19.3Версия: 19.3

Задание 1: Подготовка исходной среды

Сначала в CDB создаем пользователя, с помощью которого будем клонировать нашу базу данных.

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;

В базе данных pdb имеется таблица схемы RAUL под названием SOURCETABLE, которую мы собираемся реплицировать на целевой хост — в нашем случае Oracle21_dg. Проверяем содержимое таблицы на исходном сервере;


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 ИМЯ
—————
1 Рауль
2 Хуан
3 Пепе



Задание 2. Подготовка целевой среды

Добавляем в файл tnsnames.ora адрес, указывающий на исходную базу данных CDB, к которой мы подключимся для выполнения копирования.

cat tnsnames.ora

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

)

2.1. Целевая база данных CDB должна находиться в режиме archive log.


archive log ;
SQL> Режим журналов базы данных: «Архивный» (Archive Mode)
Автоматическая архивация включена
Место назначения архива: USE_DB_RECOVERY_FILE_DEST
Самая старая последовательность онлайн-журналов: 3
Следующая последовательность журналов для архивирования: 5
Текущая последовательность журналов: 5

Если вы не находитесь в режиме archive log, шаги по смене состояния следующие:

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

2.2. Убедитесь, что local_undo_enabled был установлен в значение «true» в целевой базе данных CDB.

Мы убедились, что параметр (Local UNDO) имеет значение TRUE. Это позволяет нам, помимо прочего, выполнять «горячее» клонирование PDB.

2.3. Создание DB_LINK, указывающего на исходную базу данных.

Мы создаем db_link из целевой базы данных, указывающий на исходную базу данных, с помощью которого будем выполнять копирование.

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

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

Примечание: Имя db_link: clone_pdblink; имя пользователя для подключения к БД: c##testclone; tnsnames name=SOURCE

Мы проверяем, что db_link был создан правильно:

Задание 3. Клонирование удаленной базы данных.

Мы запускаем команду клонирования с целевой базы данных, указав исходную базу данных через ранее созданную ссылку db_lnik.


SQL> alter session set global_names=false;
Сессия изменена.
SQL> create pluggable database CLONE_PDB1 from PDB1_SOURCE@clone_pdblink;
Подключаемая база данных создана.


Задание 4. Откройте PDB созданный PDB
По умолчанию база данных (pdb) создается в смонтированном состоянии. Откроем файл pdb.

SQL> alter pluggable database test_targetpdb1 open;


Задание 5. Проверяем, всё ли правильно.

Мы убедились, что PDB содержащиеся в ней данные были правильно скопированы в место назначения.

YouTube
LinkedIn