PDBのホットクローン

この記事では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のホットクローンが完了になります。