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を指定する必要があります。REDOログ内の変更により、Oracle 12.2以上のマルチテナント・データベースからキャプチャするには、証跡フォーマット・リリースが12.3以上である必要があります。

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

    exec dbms_goldengate_auth.grant_admin_privilege('C##GGADMIN',container=>'all')
    
  • DDLレプリケーションはマルチテナント・データベースの通常のレプリケーションとして機能します。ただし、Replicatはルート・コンテナに接続してはならず、PDBのみに接続する必要があるため、ルート・コンテナのDDLはレプリケートしないでください。

マルチテナント・データベースのFLUSH SEQUENCE

FLUSH SEQUENCEはPDBレベルで発行される必要があるため、ユーザーは、順序レプリケーションを実行する各PDBでOracle GoldenGateユーザーを作成し、DBLOGINを使用してそのPDBにログインし、FLUSH SEQUENCEコマンドを実行する必要があります。

各PDBで同じスキーマを使用して、スキーマがGGSCHEMA GLOBALSパラメータ・ファイルで動作するようにすることをお薦めします。例:

Environment Information OGG 18.1 Oracle 12c to Oracle 12c Replication, Integrated Extract, Parallel Replicat
Source: CDB GOLD, PDB CERTMISSN 
Target: CDB PLAT, PDB CERTDSQ 
Source OGG Configuration
    Container User: C##GGADMIN
    PDB User for Sequences: GGATE
sqlplus / as sysdbao 
SQL> alter session set container=CERTMISSN;
SQL> create user ggate identified by password default tablespace users temporary tablespace temp quota unlimited on users container=current;
Run @sequence
sqlplus / as sysdba
SQL> alter session set container=CERTMISSN;
SQL> @sequence
プロンプトが表示されたら、次のように入力します
GGATE GLOBALS
GGSCHEMA GGATE
FLUSH SEQUENCE:
GGSCI> DBLOGIN USERIDALIAS GGADMIN DOMAIN GOLD_QC_CDB$ROOT

GGSCI> FLUSH SEQUENCE CERTMISSN.SRCSCHEMA1.*
 
ターゲットのOracle GoldenGate構成:
 PDB User: GGATE
Run @sequence
sqlplus / as sysdba
SQL> alter session set container=CERTDSQ;
SQL> @sequence

プロンプトが表示されたら、GGATEを入力します

これは、キャプチャ元の各PDBでも実行する必要がある@sequence.sqlスクリプトにも適用されます。