Отключить PDB (unplug) и подключить её к другой (или той же) CDB
OracleMultitenantКоманда
-- 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;Что делает
Отсоединяет PDB от CDB и записывает её метаданные в XML-манифест (или в единый архив .pdb вместе с datafile); после проверки совместимости подключает её обратно в целевую CDB с теми же файлами.
Когда использовать
Чтобы перенести PDB в CDB более нового релиза на том же сервере (обновление через unplug/plug), для консолидации CDB или для переносов, когда клонирование по сети невозможно.
Внимание
После unplug PDB недоступна в исходной CDB (простой). Файлы, подключённые с NOCOPY, теперь принадлежат целевой CDB; сначала сделайте файловую копию или бэкап RMAN, чтобы можно было откатиться при сбое. Пока нарушения типа ERROR не устранены, PDB открывается в режиме RESTRICTED. При повторном подключении к той же CDB отсутствие AS CLONE может вызвать конфликт GUID.
Связанные материалы
- Создать новую PDB из PDB$SEED
- Клонировать PDB в пределах той же CDB (локальный / горячий клон)
- Клонировать PDB из другой CDB через DB link (удалённый клон)
- Открыть PDB и сохранить их открытыми при перезапусках CDB (SAVE STATE)
- Задать для каждой PDB лимиты CPU, памяти, I/O и хранилища
- Проверить, в каком контейнере вы находитесь, и запросить все PDB из root (CDB_ / CONTAINERS)