PDBの再配置

この記事では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の再配置が完了となります。