4.7.4 コンテナ・データベースのクローニング
Oracle Databaseには、Oracleマルチテナント・プラガブル・データベース(PDB)用の統合スナップショットおよびクローニング機能があり、主にCREATE PLUGGABLE DATABASEおよびALTER PLUGGABLE DATABASE SQLコマンドを介して使用できます。Oracle DatabaseでExascaleストレージを使用する場合、PDBスナップショットおよびスナップショット・コピー(クローニング)機能では、ネイティブのExascaleスナップショットおよびクローンを自動的に使用し、必要なファイルの領域効率の高いコピーを作成します。
ただし、コンテナ・データベース(CDB)全体をクローニングするのに必要なのは、データベース・ファイルのクローニングだけではありません。クローンには、一意のデータベース名と、データベース・インスタンスに対する個別の構成設定が必要であり、元のデータベースとは別に様々な操作を調整する必要があります。
効率的なCDBクローニングを容易にするために、Oracleには、gDBCloneという汎用データベース・クローニング・ユーティリティが用意されています。従来、gDBCloneではCDB複製の様々な方法をサポートしています。Exascaleの導入により、gDBCloneユーティリティは、Exascaleストレージと連携して効率的なCDBクローニングが容易になるよう拡張されています。
gDBCloneユーティリティおよびExascaleストレージを使用したCDBクローンの作成は:
-
簡単です。ユーティリティに必要な入力はわずかです。
-
信頼できます。手順全体が自動化され、エラーのリスクが軽減されています。
-
柔軟性があります。
gDBCloneを使用すると、次をクローニングできます:-
単一インスタンス・データベースおよびOracle RACデータベース。
-
暗号化されていないデータベースおよびOracle Transparent Data Encryption (TDE)を使用するデータベース。
-
スタンドアロン・データベース、Oracle Data Guardプライマリ・データベースおよびOracle Data Guardスタンバイ・データベース。
-
gDBCloneユーティリティを使用するには、まずソースCDBがARCHIVELOGモードで実行されていることを確認する必要があります。
次に、ExascaleストレージにCDBクローンを作成するために、次の構文およびオプションを指定してgDBCloneユーティリティを使用します:
# /opt/gDBClone/gDBClone.bin { clone | snap } -sdbname source_db_name -tdbname target_db_name
[ -tdbhome target_db_home ]
[[[ -sga_max_size size_mb ] [ -sga_target size_mb ]] | -pfile file-name ]
[ -sdbport source_listener_port ]
[ -racmod { 0 | 1 | 2 }]
[ -syspwf sys_password_file ]
[ -walletpwf wallet_password_file ]
このコマンドの説明:
-
clone: 完全な(シン・プロビジョニングされていない)データベース・コピーを使用してCDBクローンを作成するようにgDBCloneに指示します。このオプションは、データベースを他の場所からExascaleストレージにコピーする場合にお薦めします。 -
snap: ソース・データベースがExascaleボールト内に存在したら、snapオプションは、同じExascaleボールト内にシン・プロビジョニングされた領域効率の高いCDBクローンを作成するようにgDBCloneに指示します。このオプションを使用すると、Exascaleではリダイレクト・オンライト手法を使用して、最小限のストレージ領域を使用してデータ・ファイル・クローンを効率的に作成および保守します。その結果、ソース・データベースのサイズに関係なく、基礎となるExascaleファイルのクローニング操作が即時発生し、CDB全体を数分でクローニングできます。
-
-sdbname source_db_name: クローニングするソースCDBのdb_unique_nameを指定します。 -
-tdbname target_db_name: 新しくシン・プロビジョニングされたターゲットCDBに使用するdb_unique_nameを指定します。 -
-tdbhome target_db_home: オプションで、ターゲットCDBのORACLE_HOMEの場所を指定します。指定しない場合、ターゲットCDBでは、ソースCDBと同じOracle Databaseバイナリを自動的に使用します。 -
-sga_max_size size_mb: オプションで、ターゲット・データベース・システム・グローバル領域(SGA)の最大サイズ(MB)を指定します。指定しない場合、ターゲットCDBでは、ソース・データベースと同じサイズが自動的に使用されます。 -
-sga_target size_mb: オプションで、ターゲット・データベース・システム・グローバル領域(SGA)の名目合計サイズ(MB)を指定します。指定しない場合、ターゲットCDBでは、ソース・データベースと同じサイズが自動的に使用されます。 -
-pfile file-name: オプションで、ターゲット・データベースで使用する1つ以上のサポートされているパラメータ設定を含むファイルを指定します。サポートされているパラメータのリストは、gDBCloneリファレンス(Oracle Supportドキュメント2099214.1)を参照してください。このオプションは、コマンドラインで-sga_max_sizeおよび-sga_targetを指定するかわりに使用できます。 -
-sdbport source_listener_port: オプションで、ソースCDBのOracle Netリスナーのポート番号を指定します。指定しない場合、デフォルト値は1521です。 -
-racmod { 0 | 1 | 2 }: オプションで、次のいずれかの値を使用してターゲットCDB構成を指定します:-
0- 単一インスタンス。これは、gDBCloneのデフォルト値です。 -
1- Oracle RAC One Node。 -
2- Oracle RAC。これは、Oracle Exadata Exascale上のデータベースに対する一般的な設定です。
-
-
-syspwf sys_password_file: オプションで、ソース・データベースのSYSユーザー・パスワードの暗号化版を含むファイルを指定します。このファイルは、syspwfオプションを指定してgDBCloneを使用して以前に作成されています。このオプションを指定しない場合、
gDBCloneは、使用可能なパスワード・ファイルがないかデフォルトの場所(/opt/gDBClone/SYSpasswd_file)をチェックし、それが成功しない場合、gDBCloneはコマンドの実行中にパスワードの入力を求めます。 -
-walletpwf wallet_password_file: オプションで、ソース・データベース・キーストアの(ウォレット)パスワードの暗号化版を含むファイルを指定します。このオプションは、ソース・データベースでOracle Transparent Data Encryption (TDE)を使用する場合に指定する必要があります。
たとえば、次のコマンドは、SOURCE CDBをシン・クローニングしてTHIN CDBを作成する簡単な例を示しています。
# /opt/gDBClone/gDBClone.bin snap -sdbname SOURCE -tdbname THIN -racmod 2
前述の例では次のようになります。
-
SOURCECDBは、以前にExascaleボールトにコピーされ、THINCDBは同じボールト内に存在します。 -
SOURCECDBはOracle RACデータベースであり、THINCDBもOracle RACデータベースとして構成されます。 -
両方のCDBは同じOracleバイナリを共有し、
THINCDBはSOURCECDBからOracle Databaseパラメータ設定を継承します。 -
gDBCloneユーティリティは、/opt/gDBClone/SYSpasswd_fileで、SOURCECDB SYSユーザー・パスワードを含む暗号化されたファイルを探します。ファイルが存在しないか、必要なパスワードが含まれていない場合、gDBCloneは実行時にパスワードの入力を求めます。 -
SOURCECDBは、Oracle Transparent Data Encryption (TDE)を使用して暗号化されません。ソース・データベースにTDE暗号化表領域が含まれている場合は、CDBシン・クローンを作成する前に、TDEキーストア(ウォレット)を構成するための追加ステップが必要です。
gDBCloneユーティリティには、多くの追加機能が用意されています。たとえば、次を実行してgDBCloneで作成されたデータベースを表示し、それらの間の関係を表示できます:
# /opt/gDBClone/gDBClone.bin listdbs -tree
deldbオプションを使用して、データベースを迅速かつ簡単に削除することもできます。次に例を示します:
# /opt/gDBClone/gDBClone.bin deldb -tdbname THIN
関数の完全なリストと詳細は、gDBCloneリファレンス(Oracle Supportドキュメント2099214.1)を参照してください。