この記事ではPDBの再配置について解説します。
PDBの再配置とは
PDBの再配置とは、あるPDBを異なるCDBに再配置する方法です。
この機能を使用すると停止時間がほぼゼロでPDBを移動させることができます。
PDBのクローンとは違い、PDBの再配置が完了したタイミングで、元のPDBは削除されます。
ソースPDBとターゲットPDBが共通のリスナーネットワークを使用している場合には、PDBの再配置後にPDBへの接続を自動でリダイレクトする機能があります。
クライアントからソースPDBのリスナーへ接続要求があった場合に、ターゲットPDBのリスナーへリダイレクトされます。
PDB再配置の前提条件
PDBの再配置を行う上でいくつかの必要な条件があります。
1つはソースCDB、ターゲットCDBともにローカルUNDOモードになっていることです。
2つ目はソースCDB、ターゲットCDBともにアーカイブログモードになっていることです。
PDBの再配置手順
CDB1に存在するPDBTESTをCDB2に再配置します。
ソースCDBにてSYSTEMユーザに権限を付与します。
SQL> grant create pluggable database, sysoper to system container=all;
権限付与が成功しました。
ターゲットとなるCDB2に配下にデータファイルを格納するディレクトリを作成します。
mkdir /u01/app/oracle/oradata/CDB2/pdbtest
ターゲットDBへ接続し、ソースDBへ接続するためのデータベースリンクを作成します。
SQL> create public database link relocate connect to system identified by password using 'CDB1';
データベース・リンクが作成されました。
ターゲットCDBにSYSTEMユーザで接続し、PDBを再配置します。
SQL> create pluggable database pdbtest from pdbtest@link relocate file_name_convert=('/u01/app/oracle/oradata/CDB1/pdbtest', '/u01/app/oracle/oradata/CDB2/pdbtest');
プラガブル・データベースが作成されました。
作成ができたらPDBをオープンします。
SQL> alter pluggable database pdbtest open;
プラガブル・データベースが変更されました。
再配置したPDBをオープンするとソースPDBは自動的に削除されます。
以上で、PDBの再配置が完了となります。