この方法は、ソース・プラットフォームがリトルエンディアンでデータベース文字セットがAL32UTF8または互換サブセットの場合にのみ使用できます。 Oracle Database 12cのマルチテナント・アーキテクチャをデータベース・リンクと組み合せて使用し、ソース・データベースをネットワーク越しに直接クローニングします。 プロセスは単純ですが、データベースが大規模な場合またはネットワーク・リンクが遅かったり信頼できない場合、実行できない可能性があります。
リモートPDBまたは非CDBのクローニングは、PDBのアンプラグとプラグインまたは非CDBのプラグインに非常に似ています。 主な違いは、リモート・クローニングではデータベース・リンクを使用してCREATE PLUGGABLE DATABASE
コマンドの実行の一環としてデータを転送することです。 そのため、リモート・クローニングは、PDBを準備し、トランスポートしてプラグインするより単純です。 ただし、リモート・クローニングはデータベース・リンク越しのデータのトランスポートに依存するため、実行可能な方法がどうかを判断するにはソース・データベースのサイズおよびインターネット接続の速度を考慮する必要があります。
リモートPDBまたは非CDBのクローニングには、PDBのアンプラグとプラグインまたは非CDBのプラグインと同様の要件および制限があります。
ソース・データベースはバージョン12.1以上である必要があります。
ソースおよびターゲット・プラットフォームのエンディアン形式が同じである必要があります。Exadata Cloud Machineの場合はリトルエンディアンです。
理想的には、ソースおよびターゲットのCDBで同じ文字セット(Exadata Cloud Machineの場合はAL32UTF8)を使用する必要があります。 あるいは、PDB文字セットがUTF8などのAL32UTF8のバイナリ・サブセットであるマルチバイト文字セットである必要があります。ただし、文字セットが異なり、最大文字幅が異なる場合、問題が発生する可能性があります。
さらに、非CDBのクローニングによってPDBを作成する場合、ターゲットCDBとソース非CDBの両方がOracle Database 12cバージョン12.1.0.2以上である必要があります。
リモート・クローニング方法を使用してOracle Database 12c PDBまたは非CDBをExadata Cloud Machineに移行するには、次のタスクを実行します。
ソースPDBまたは非CDBを読取り専用モードにします。
ターゲットCDBで、ソース・データベースへの接続を可能にするデータベース・リンクを作成します。
ターゲットCDBでCREATE PLUGGABLE DATABASE
文を実行し、ソースPDBまたはソース非CDBをFROM
句に指定します。
たとえば、mylink
という名前のソースPDBまたは非CDBへのデータベース・リンクがあり、ソース・データベースの名前がmydb
とすると、次の文でnewpdb
という名前のクローニングされたPDBが作成されます。
SQL> CREATE PLUGGABLE DATABASE newpdb FROM mydb@mylink;
ソースが非CDBの場合、ターゲットPDBにSYSDBA
ユーザーとして接続し、$ORACLE_HOME/rdbms/admin/noncdb_to_pdb.sql
スクリプトを実行して新しいPDBのSYSTEM
表領域から不要なメタデータを削除します。
ALTER PLUGGABLE DATABASE ... OPEN READ WRITE
コマンドを実行して、ターゲットPDBを読取り/書込みモードで開きます。
「Oracle Database管理者ガイド」の「リモートPDBまたは非CDBのクローン作成」を参照してください。