この記事ではPDBのホットクローンについて解説します。
ホットクローンとは
マルチテナント環境ではPDB特有の機能としてPDBのクローンを行うことができます。
クローンはあるPDBをソースとして同じPDBを異なるCDBに簡単に作成することができる機能です。
この機能によってDBの移行が大変容易に行えるようになりました。
その中でもホットクローンという機能があります。
これはソースとなるPDBの停止、読み取り専用モードにする必要がなくオンライン状態で実施できる機能です。
クローン中にソースPDBで更新が発生した際も、その更新情報をリフレッシュ機能によってクローン先のPDBに反映することができます。
ホットクローンの前提条件
ホットクローンを行う上でいくつかの必要な条件があります。
1つはソースCDB、ターゲットCDBともにローカルUNDOモードになっていることです。
2つ目はソースCDB、ターゲットCDBともにアーカイブログモードになっていることです。
ホットクローンの手順
CDB1に存在するPDBTESTをCDB2にホットクローンします。
ソースDBにてPDBの作成権限をユーザに付与します。
SQL> grant create pluggable database to system container=all;
権限付与が成功しました。
ターゲットとなるCDB2配下にデータファイルを格納するディレクトリを作成します。
mkdir /u01/app/oracle/oradata/CDB2/pdbtest
ターゲットDBへ接続し、ソースDBへ接続するためのデータベースリンクを作成します。
SQL> create public database link hotclone connect to system identified by password using 'cdb1';
データベース・リンクが作成されました。
データベースリンクが作成できたら、ターゲットCDBにSYSTEMユーザで接続し、クローンを作成します。
SQL> create pluggable database pdbtest from pdbtest@hotclone
file_name_convert=('/u01/app/oracle/oradata/CDB1/pdbtest', '/u01/app/oracle/oradata/CDB2/pdbtest')
refresh mode manual;
プラガブル・データベースが作成されました。
PDBのリフレッシュ処理を実行します。
SQL> alter pluggable database pdbtest refresh;
プラガブル・データベースが変更されました。
リフレッシュの進行状況はアラートログを見ると確認できます。
アラートログに以下の記載があれば完了になります。
Completed: alter pluggable database pdbtest refresh
リフレッシュが完了したらリフレッシュを停止し、PDBをオープンします。
SQL> alter pluggable database pdbtest refresh mode none;
プラガブル・データベースが変更されました。
SQL> alter pluggable database pdbtest open;
プラガブル・データベースが変更されました。
以上でPDBのホットクローンが完了になります。