同じCDB内でPDBをクローン(ローカル/ホットクローン)
OracleMultitenantコマンド
-- 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>');概要
ソースPDBのデータファイルをコピーして同じCDB内に新しいPDBを作成する。ローカルUNDOとARCHIVELOGがあれば、ソースが読み取り/書き込みでオープン中でも実行できる(ホットクローン)。
使用する場面
本番PDBのテスト/開発用コピーの作成、アップグレードやパッチのリハーサル、リスクのある変更前の迅速なコピー取得に。
注意
コピーはソースに追加のI/Oを発生させ、ターゲットにはソースと同じだけの領域が必要。共有UNDOモードまたはNOARCHIVELOGでは、ソースはREAD ONLYである必要がある(19cドキュメント)。クローンには本番データが含まれる。オープン前にマスキング、DBリンク、ジョブ(DBMS_SCHEDULER)、外部システムへの接続を確認する。