5 マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成

この章では、マルチテナント・コンテナ・データベース(CDB)にOracle GoldenGateを構成する場合の手順について説明します。

内容は次のとおりです。

プラガブル・データベースでのOracle GoldenGateの使用

ほとんどの場合、Oracle GoldenGateは、通常のOracle Databaseでの動作と同じように、マルチテナント・コンテナ・データベースで動作します。

次の章の実際の構成手順の基本として、次の手順を考慮します。

統合モードでのキャプチャの構成

Oracle GoldenGateの適用の構成

内容は次のとおりです。

プラガブル・データベースからのキャプチャ

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によって読み取られます。

構成からのオブジェクトの除外

プラガブル・データベース、スキーマおよびオブジェクトを構成から除外するには、CATALOGEXCLUDESCHEMAEXCLUDETABLEEXCLUDEMAPEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYパラメータを使用できます。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

マルチテナント・コンテナ・データベースのその他の要件

この項では、マルチテナント・コンテナ・データベースとの間のレプリケーションに適用される特別な要件について説明します。

要件は次のとおりです。

  • マルチテナント・コンテナ・データベース内の異なるプラガブル・データベースが異なるキャラクタ・セットを持つことができます。Oracle GoldenGateは、異なるキャラクタ・セットを持つマルチテナント・データベースから、1つの証跡ファイルにデータをキャプチャして、データをレプリケートしますが、異なるキャラクタ・セットの使用によってデータは破損しません。

  • Extractは統合キャプチャ・モードで動作する必要があります。Extractキャプチャ・モードの詳細は、「使用するキャプチャ方法の決定」 を参照してください。Replicatは任意のモードで動作できます。

  • ログマイニング・サーバーと対話するには、Extractが共通ユーザーとしてルート・コンテナ(cdb$root)に接続する必要があります。ルート・コンテナを指定するには、USERIDまたはUSERIDALIASパラメータで指定するデータベース・ユーザーに適切なSQL*Net接続文字列を使用します。例: C##GGADMIN@FINANCE。Oracle GoldenGateプロセスのユーザーの作成および適切な権限を付与する方法は、「Oracle GoldenGate資格証明の確立」を参照してください。

  • ソースCDB 12.2をサポートするためには、Extractで証跡形式としてリリース12.3を指定する必要があります。

  • dbms_goldengate_auth.grant_admin_privilegeパッケージは、マルチテナント・コンテナ・データベース内のキャプチャおよび適用の適切な権限を付与します。これにはcontainerパラメータが含まれ、次の例のようにALLに設定する必要があります。

    dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'all')