この章では、マルチテナント・コンテナ・データベース(CDB)にOracle GoldenGateを構成する場合の手順について説明します。
この章の内容は次のとおりです。
ほとんどの場合、Oracle GoldenGateは、通常のOracleデータベースで動作するのと同じように、マルチテナント・コンテナ・データベースで動作します。したがって、次の章の実際の構成手順の基本として、次の手順を考慮します。
1つのExtractグループで、複数のプラガブル・データベースから単一の証跡にキャプチャできます。パラメータ・ファイルで、container.schema.object
の形式の3つの部分からなる完全修飾名で、ソース・オブジェクトを
TABLEおよびSEQUENCE
文に指定する必要があります。
3つの部分からなる名前を指定する代替方法として、SOURCECATALOG
パラメータでデフォルトのプラガブル・データベースを指定し、後続のTABLEまたはSEQUENCE
パラメータに、schema.object
のみを指定できます。この構成の複数のインスタンスを使用して、複数のソース・プラガブル・データベースを処理できます。例:
SOURCECATALOG pdb1 TABLE schema*.tab*; SEQUENCE schema*.seq*; SOURCECATALOG pdb2 TABLE schema*.tab*; SEQUENCE schema*.seq*;
Replicatは、1つのプラガブル・データベースのみに接続して適用できます。正しいものを指定するには、USERID
またはUSERIDALIAS
パラメータで指定するデータベース・ユーザーにSQL*Net接続文字列を使用します。例: GGADMIN@FINANCE
。パラメータ・ファイルで、MAP文のTARGET
の部分に、schema.object
のみを指定します。
MAP
の部分で、3つの部分からなる名前の複数のプラガブル・データベースからキャプチャされるソース・オブジェクトを識別するか、2つの部分からなる名前のSOURCECATALOG
パラメータを使用します。次に、この構成の例を示します。
SOURCECATALOG pdb1 MAP schema*.tab*, TARGET *1.*; MAP schema*.seq*, TARGET *1.*; SOURCECATALOG pdb2 MAP schema*.tab*, TARGET *2.*; MAP schema*.seq*, TARGET *2.*;
次に、SOURCECATALOGを使用せずに
ソース・プラガブル・データベースを識別する例を示します。この場合、ソース・オブジェクトは3つの部分からなる名前で指定されます。
MAP pdb1.schema*.tab*, TARGET *1.*; MAP pdb1.schema*.seq*, TARGET *1.*;
複数のソース・プラガブル・データベースから複数のターゲット・プラガブル・データベースへのレプリケーションを構成するには、パラレルExtractおよびReplicatストリームを構成し、それぞれ1つのプラガブル・データベースのデータを処理できます。または、複数のソース・プラガブル・データベースから1つのExtractキャプチャを構成できます(複数のReplicatグループによって読み取られる1つの証跡を書き込み、それぞれ異なるターゲット・プラガブル・データベースに適用します)。別の代替方法として、複数の証跡への1つのExtract書込みを使用する方法があり、各証跡は、特定のターゲット・プラガブル・データベースに割り当てられたReplicatによって読み取られます(図6-1を参照)。
マルチテナント・コンテナ・データベースとの間でレプリケーションを適用する特別な条件は次のとおりです。
マルチテナント・コンテナ・データベースのすべてのプラガブル・データベースは、キャラクタ・セット、ロケール、大文字/小文字の区別など、同じ属性が必要です。プラガブル・データベースのキャラクタ・セットはルート・コンテナのキャラクタ・セットのサブセットにできます。
Extractは統合キャプチャ・モードで動作する必要があります。Extractキャプチャ・モードの詳細は、5.2項「使用するキャプチャ方法の決定」を参照してください。Replicatは任意のモードで動作できます。
ログマイニング・サーバーと対話するには、Extractが共通ユーザーとしてルート・コンテナ(cdb$root
)に接続する必要があります。ルート・コンテナを指定するには、USERID
またはUSERIDALIAS
パラメータで指定するデータベース・ユーザーに適切なSQL*Net接続文字列を使用します。例: C##GGADMIN@FINANCE
。Oracle GoldenGateプロセスのユーザーの作成および適切な権限を付与する方法は、第4章「Oracle GoldenGate資格証明の確立」を参照してください。
dbms_goldengate_auth.grant_admin_privilege
パッケージは、マルチテナント・コンテナ・データベース内のキャプチャおよび適用の適切な権限を付与します。これにはcontainer
パラメータが含まれ、次の例のようにALL
に設定する必要があります。
dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'all')
Oracle GoldenGateプロセスの構成を開始するには、次の章を参照してください。