RMANのDuplicateはCDB全体を複製する以外に、CDB内の特定のPDBを既存の別CDBに複製することもできる。複製先は既存のCDBなので、通常のDuplicateのように補助インスタンスを新たに作成する必要はない。
以下のような構成で試してみる。
- 既存のCDBのSIDは「cdb19」、複製するPDBは「cdb19p2」
- 複製先のCDBは別筐体上の同じSID「cdb19」で、同じ名前のPDBを作成する
- データファイルの格納先は複製元と同じとする
複製元データベースでの作業
複製元のデータベースはアーカイブログモードになっている必要がある。
また、複製したいPDBは事前にOPENしておく。
SQL> alter pluggable database cdb19p2 open;
複製先データベースでの作業
複製元につなげるためのクライアント設定を行う
tnsnames.ora に複製元のデータベース(CDB)に接続するための設定を追加する。
ここでは、接続識別子(ネットサービス名)を「SRC」としている。
SRC =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oradbs.dn.home)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = cdb19)
)
)
remote_recovery_file_dest パラメータの設定
複製実行中にアーカイブログファイルが格納されるディレクトリの指定が必要。
適当なディレクトリを作成しておき、そこをパラメータで指定しておく。
$ mkdir ~/rrfd
SQL> alter system set remote_recovery_file_dest='/home/oracle/rrfd';
複製を実行する
RMANを起動する。この時、targetは複製元、auxiliary は複製先の既存のCDBのSYSユーザを指定。
$ rman target sys/oracle@SRC auxiliary sys/oracle
あとは以下のようにDuplicateコマンドを実行する。
RMAN> duplicate pluggable database cdb19p2 as cdb19p2 to cdb19 from active database nofilenamecheck;
RMAN> duplicate pluggable database cdb19p2 as cdb19p2 to cdb19 from active database nofilenamecheck;
Duplicate PDBを2023-03-11 23:40:45で開始しています
リカバリ・カタログのかわりにターゲット・データベース制御ファイルを使用しています
チャネル: ORA_AUX_DISK_1が割り当てられました
チャネルORA_AUX_DISK_1: SID=278 デバイス・タイプ=DISK
現在のログがアーカイブされました。
RMAN-05159: Oracle Managed File (OMF)の場所にOnline logsを複製しています
RMAN-05158: 警告: 補助(datafile)ファイル名/u01/app/oracle/oradata/CDB19/cdb19p2/system01.dbfは、ターゲット・データベースによって使用されているファイルと競合しています
RMAN-05158: 警告: 補助(datafile)ファイル名/u01/app/oracle/oradata/CDB19/cdb19p2/sysaux01.dbfは、ターゲット・データベースによって使用されているファイルと競合しています
RMAN-05158: 警告: 補助(datafile)ファイル名/u01/app/oracle/oradata/CDB19/cdb19p2/undotbs01.dbfは、ターゲット・データベースに
よって使用されているファイルと競合しています
現在のログがアーカイブされました。
メモリー・スクリプトの内容:
{
set newname for datafile 133 to
"/u01/app/oracle/oradata/CDB19/cdb19p2/system01.dbf";
set newname for datafile 134 to
"/u01/app/oracle/oradata/CDB19/cdb19p2/sysaux01.dbf";
set newname for datafile 135 to
"/u01/app/oracle/oradata/CDB19/cdb19p2/undotbs01.dbf";
restore
from nonsparse clone foreign pluggable database
"CDB19P2"
from service 'SRC' ;
}
メモリー・スクリプトを実行しています
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
実行コマンド: SET NEWNAME
restoreを2023-03-11 23:40:49で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスSRCのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: 外部ファイル133を/u01/app/oracle/oradata/CDB19/cdb19p2/system01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:15
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスSRCのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: 外部ファイル134を/u01/app/oracle/oradata/CDB19/cdb19p2/sysaux01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:07
チャネルORA_AUX_DISK_1: データファイル・バックアップ・セットのリストアを開始しています
チャネルORA_AUX_DISK_1: サービスSRCのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: バックアップ・セットからリストアするデータファイルを指定しています
チャネルORA_AUX_DISK_1: 外部ファイル135を/u01/app/oracle/oradata/CDB19/cdb19p2/undotbs01.dbfにリストアしています
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:07
restoreを2023-03-11 23:41:18で終了しました
メモリー・スクリプトの内容:
{
set archivelog destination to '/home/oracle/rrfd';
restore clone force from service 'SRC'
foreign archivelog from scn 7625712;
}
メモリー・スクリプトを実行しています
実行コマンド: SET ARCHIVELOG DESTINATION
restoreを2023-03-11 23:41:18で開始しています
チャネルORA_AUX_DISK_1の使用
チャネルORA_AUX_DISK_1: ユーザー指定の宛先へのアーカイブ・ログのリストアを開始しています
アーカイブ・ログの保存先=/home/oracle/rrfd
チャネルORA_AUX_DISK_1: サービスSRCのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: アーカイブ・ログをリストアしています
アーカイブ・ログ・スレッド=1 順序=131
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
チャネルORA_AUX_DISK_1: ユーザー指定の宛先へのアーカイブ・ログのリストアを開始しています
アーカイブ・ログの保存先=/home/oracle/rrfd
チャネルORA_AUX_DISK_1: サービスSRCのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: アーカイブ・ログをリストアしています
アーカイブ・ログ・スレッド=1 順序=132
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
チャネルORA_AUX_DISK_1: ユーザー指定の宛先へのアーカイブ・ログのリストアを開始しています
アーカイブ・ログの保存先=/home/oracle/rrfd
チャネルORA_AUX_DISK_1: サービスSRCのネットワーク・バックアップ・セットを使用しています
チャネルORA_AUX_DISK_1: アーカイブ・ログをリストアしています
アーカイブ・ログ・スレッド=1 順序=133
チャネルORA_AUX_DISK_1: リストアが完了しました。経過時間: 00:00:01
restoreを2023-03-11 23:41:22で終了しました
メタデータのインポートを実行しています...
Duplicate PDBを2023-03-11 23:41:25で終了しました
複製先にPDBが作成されていることが確認できれば完了。
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 CDB19P1 READ WRITE NO
4 CDB19P2 READ WRITE NO
SQL>
コメント