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)を参照してください。