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

前述の例では次のようになります。

  • SOURCE CDBは、以前にExascaleボールトにコピーされ、THIN CDBは同じボールト内に存在します。

  • SOURCE CDBはOracle RACデータベースであり、THIN CDBもOracle RACデータベースとして構成されます。

  • 両方のCDBは同じOracleバイナリを共有し、THIN CDBはSOURCE CDBからOracle Databaseパラメータ設定を継承します。

  • gDBCloneユーティリティは、/opt/gDBClone/SYSpasswd_fileで、SOURCE CDB SYSユーザー・パスワードを含む暗号化されたファイルを探します。ファイルが存在しないか、必要なパスワードが含まれていない場合、gDBCloneは実行時にパスワードの入力を求めます。

  • SOURCE CDBは、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)を参照してください。