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

この章では、PDB単位のキャプチャ・モードまたはCDBルートのキャプチャ・モードを使用するOracle GoldenGateを構成するときの追加の構成手順について説明します。

内容は次のとおりです。

Oracle GoldenGateのコンテナ・データベースの構成要件

マルチテナント・コンテナ・データベースとの間のレプリケーションを有効にするための構成要件を次に示します。

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

  • Oracle Database 21cを使用するOracle GoldenGateオンプレミス21c以降では、PDB単位のExtract機能がサポートされています。特定のプラガブル・データベースのローカルggadminユーザーに接続するPDB単位のExtractを作成して、Extractを作成および登録できます。PDB単位のExtractを設定するためにcontainer句またはSOURCECATALOGは必要ありません。PDB単位のExtractとしてExtractを設定すると、非CDBと同じ手順に厳密に一致します。

    必要に応じて、ルート・コンテナの共通c##ggadminユーザーに接続するルート・レベルのExtractを設定して、コンテナを使用して特定のプラガブル・データベースのExtractを作成および登録することもできます。構成する必要があるOracleデータベース・インストールに応じて、「Oracle Database 21c以前のユーザー権限の付与」を参照してください。

    Oracle GoldenGateプロセスのユーザーの作成および適切な権限を付与する方法は、「Oracle GoldenGate資格証明の確立」を参照してください。

  • ソースCDB 12.2をサポートするためには、Extractで証跡形式としてリリース12.3を指定する必要があります。REDOログ内の変更により、Oracle 12.2以上のマルチテナント・データベースからキャプチャするには、証跡フォーマット・リリースが12.3以上である必要があります。

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

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

必要な権限のリストおよびOracle GoldenGateのコンテナおよびプラガブル・データベースの構成方法については、Oracle GoldenGate Microservices Architectureを使用したデータ・レプリケーションのクイックスタートも参照してください。

マルチテナント・コンテナ・データベースのフラッシュ順序

FLUSH SEQUENCEは、初期同期化中または再同期化中の最初にExtractを起動した直後に使用します。このコマンドは、Extractがトランザクション・データの取得を開始した時点で初期REDOレコードが使用できるように、Oracle順序を更新します。通常は、現在のキャッシュが使い果されるまで、REDOは生成されません。フラッシュは、ターゲット・システムで正しい順序値に同期するために使用する初期の開始位置を、Replicatに提供します。それ以降は、Extractは、順序値の通常のキャッシュ予約に関連付けられたREDOを使用できます。
  1. FLUSH SEQUENCEは、次のOracleプロシージャを使用します。

    データベース プロシージャ ユーザーおよび権限

    ソース

    updateSequence

    Oracle GoldenGate DDLオブジェクトの所有者、またはDDLサポートを使用しない場合は他の選択したユーザーに、EXECUTEを付与します。

    ターゲット

    replicateSequence

    Oracle GoldenGate ReplicatユーザーにEXECUTEを付与します。

    sequence.sqlスクリプトによって、これらのプロシージャはインストールされます。通常、このスクリプトはOracle GoldenGateのインストール・プロセスの一部として実行されますが、FLUSH SEQUENCEを使用する前に、これが実行されたことを確認してください。sequence.sqlが実行されていないと、フラッシュは失敗し、次に示すようなエラー・メッセージが生成されます。

    Cannot flush sequence {0}. Refer to the Oracle GoldenGate for Oracle 
    documentation for instructions on how to set up and run the sequence.sql 
    script. Error {1}.
  2. GLOBALSファイルには、プロシージャをインストールするスキーマを指定するGGSCHEMAパラメータが含まれている必要があります。このユーザーは、CONNECTRESOURCEおよびDBA権限を持っている必要があります。

  3. FLUSH SEQUENCEを使用する前に、updateSequenceプロシージャでEXECUTE権限を持つデータベース・ユーザーとして、DBLOGINコマンドを発行します。マルチテナント・コンテナ・データベースにログインしている場合、フラッシュされるシーケンスを含むプラガブル・データベースにログインします。

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

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

Environment Information OGG 21.3 Oracle 21c to Oracle 21c Replication, Integrated Extract, Parallel Replicat
Source: CDB NORTH, PDB DBEAST 
Target: CDB SOUTH, PDB DBWEST
Source OGG Configuration
    Container User: C##GGADMIN
    PDB User for Sequences: GGATE
sqlplus / as sysdbao 
ALTER SESSION SESSION SET CONTAINER=CERTMISSN;
CREATE USER ggadmin 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=PDBEAST;
SQL> @sequence
プロンプトが表示されたら、次のように入力します
GGADMIN GLOBALS
GGSCHEMA GGADMIN
FLUSH SEQUENCE:
DBLOGIN USERIDALIAS ggeast DOMAIN OracleGoldenGate
FLUSH SEQUENCE PDBEAST.HR.*
 
ターゲットのOracle GoldenGate構成:
 PDB User: ggadmin
Run @sequence
sqlplus / as sysdba
SQL> ALTER SESSION SET CONTAINER =PDBWEST;
SQL> @sequence

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

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

PDBからのルート・コンテナExtractの使用

Oracle GoldenGate 21c以降のリリースでは、マルチテナント・コンテナOracleデータベースのPDBからのキャプチャが可能です。マルチテナント・データベースからキャプチャするには、c##アカウントを使用してルート・レベルで構成されたExtractを使用する必要があります。ReplicatはPDBレベルで接続し、そのPDB以外のオブジェクトにアクセスできないため、マルチテナント・データベースにデータを適用するにはPDBごとに個別のReplicatが必要です。

1つのExtractグループで、複数のプラガブル・データベースから単一の証跡にキャプチャできます。パラメータ・ファイルで、container.schema.objectの形式の3つの部分からなる完全修飾名で、ソース・オブジェクトをTABLEおよびSEQUENCE文に指定する必要があります。

3つの部分からなる名前を指定する代替方法として、SOURCECATALOGパラメータでデフォルトのプラガブル・データベースを指定し、後続のTABLEまたはSEQUENCEパラメータに、schema.objectのみを指定できます。この構成の複数のインスタンスを使用して、複数のソース・プラガブル・データベースを処理できます。たとえば:

SOURCECATALOG DBEAST
TABLE hr.employees;
SEQUENCE hr.seq;
SOURCECATALOG DBWEST
TABLE hr.employees;
SEQUENCE hr.seq;

Oracleマルチテナント・データベース上のOracle GoldenGateの双方向設定で実行するステップは、「双方向レプリケーションのクイックスタート」も参照してください。

内容は次のとおりです。

Extractについて

Oracle GoldenGate Extractプロセスはデータベース・ログマイニング・サーバーと直接対話し、論理変更レコード(LCR)形式でデータの変更を受け取ります。

次に、Extractの構成について説明する図を示します。

downstream_ext.pngの説明が続きます
図downstream_ext.pngの説明

次に、Oracle GoldenGate Extractの追加機能の一部を示します。

  • Extractはデータベースと完全に統合されているため、Oracle RAC、ASM、TDEなどの機能間でシームレスな相互運用が可能です。

  • Extractは、データベース・ログマイニング・サーバーを使用してOracle REDOストリームにアクセスします。アーカイブ・ログの異なるコピー間またはオンライン・ログの異なるミラー・バージョン間での切替えは自動的に行われます。そのため、キャプチャでは、ディスクの破損、ハードウェア障害またはオペレータの誤操作によってログ・ファイルが消失してしまった場合でも、その他のアーカイブ・ログやオンライン・ログが使用できれば、その状態を透過的に処理できます。

  • Extractを使用すると、表をより高速にフィルタリングできます。

  • Extractにより、Point-in-TimeリカバリとRAC統合がより効率的に処理されます。

  • Extractには、統合ログ管理の機能があります。Oracle Recovery Manager (RMAN)で、Extractで必要なアーカイブ・ログが自動的に保持されます。

  • Extractは、マルチテナント・コンテナ・データベースからのキャプチャとPDB単位のキャプチャ・モードからのキャプチャをサポートしています。

  • ExtractとReplicat (統合)はとちらもデータベース・オブジェクトであるため、オブジェクトのネーミングは他のOracleデータベース・オブジェクトと同じルールに従います。Oracle GoldenGate MicroservicesドキュメントOracle GoldenGateの入力におけるオブジェクト名の指定を参照してください。

  • Extractがリモート・システムから実行されている場合、Oracle GoldenGateでは、クロス・エンディアンの相互運用性が自動的に有効になります。これは、Extractが実行されているサーバーのエンディアン値とOracleデータベースが実行されているサーバーのエンディアン値が異なる場合に、クロス・エンディアンのサポートが自動的に有効になることを意味します。クロス・エンディアンのExtractが機能するには、ソース・データベースの互換性パラメータが11.2.0.4以上になっている必要があります。

Extractのデプロイメント・オプション

この項では、Extractのデプロイメント・オプションについて説明しますが、それらはマイニング・データベースのデプロイ場所によって異なります。マイニング・データベースは、ログマイニング・サーバーがデプロイされているデータベースです。

  • ローカル・デプロイ: ローカル・デプロイの場合、ソース・データベースとマイニング・データベースは同じです。ソース・データベースは、REDOストリームをマイニングして変更をキャプチャする対象のデータベースで、ログマイニング・サーバーのデプロイ先でもあります。統合キャプチャはデータベースと完全に統合されているため、このモードでは、特別なデータベース設定は不要です。

  • ダウンストリーム・デプロイ: ダウンストリーム・デプロイでは、ソース・データベースとマイニング・データベースは、異なるデータベースです。ログマイニング・サーバーは、ダウンストリーム・データベースに作成します。REDOログをダウンストリーム・マイニング・データベースに転送してそこでキャプチャを行うようにソース・データベースのREDO転送を構成します。キャプチャのオーバーヘッドや変換によるその他のオーバーヘッドおよび本番サーバーの他の処理を軽減するには、キャプチャにダウンストリーム・マイニング・サーバーを使用することをお薦めしますが、これにはログの転送や他の構成が必要です。

    ダウンストリーム・マイニング構成を使用する場合、ソース・データベースとマイニング・データベースは同じプラットフォームのものである必要があります。たとえば、ソース・データベースがWindows 64ビットで稼働している場合、ダウンストリーム・データベースのプラットフォームもWindows 64ビットである必要があります。ダウンストリーム・マイニング・データベースを構成するには、「ダウンストリーム・マイニング・データベースの構成」を参照してください。

  • ダウンストリーム・ソースレスExtractデプロイ: Extractパラメータ・ファイルでUSERIDパラメータをNOUSERIDで置換します。TRANLOGOPTIONS MININGUSERを使用する必要があります。Extractは必要な情報をすべてダウンストリーム・マイニング・データベースから取得します。ソース・データベースへの接続には依存しません。Extractに影響を与えることなくソース・データベースを停止および再起動できます。

    ソース・データベースからデータをフェッチする必要があるREDO変更が発生すると、Extractは異常終了します。

    dba_goldengate_support_modeビューにID KEYとしてリストされているすべての表をキャプチャするには、その表をサポートするFETCHUSERID接続またはFETCHUSERIDALIAS接続が必要です。FULLとしてリストされている表は、これを必要としません。また、問合せを実行するかストアド・プロシージャを実行するSQLEXEC操作を顧客が実行する場合、SQLEXECUSERIDまたはUSERIDALIASで動作するため、この方法はNOUSERIDと互換性がないので使用できないことに注意してください。

プライマリExtractの構成

プライマリExtractがログマイニング・サーバーからログ変更のレコードをキャプチャするマイニング・データベースは、ローカルまたはソース・データベースからダウンストリームのいずれかが可能です。

次のステップでは、どちらかの場所からトランザクション・データをキャプチャするようにプライマリExtractを構成します。「ダウンストリーム・マイニング・データベースの構成」および次の例を参照してください。

  1. 例1: リアルタイム・モードでの1つのソース・データベースからのキャプチャ

  2. 例2: アーカイブログのみモードでの複数のソースからのキャプチャ

  3. 例3: リアルタイム・モードとアーカイブログのみモードが混在する複数ソースからのキャプチャ

ノート:

マルチテナント・コンテナ・データベース内の単一データベースまたは複数のプラガブル・データベースからキャプチャするには、一般的に1つのExtractグループで十分です。「マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成」を参照してください。Oracle Autonomous Databaseまたはクラウド環境で作業する場合は、PDB単位のキャプチャ・モードを選択することもできます。「Autonomous DatabaseからキャプチャするExtractの構成」を参照してください。

  1. ソース・システムのGGSCI、Admin ClientまたはREST APIクライアントで、Extractパラメータ・ファイルを作成します。
    EDIT PARAMS name

    説明: nameは、プライマリExtractの名前です。

  2. 次に示す順序でExtractパラメータを入力します。パラメータ文ごとに新しい行を開始します。通常のデータベース、マルチテナント・コンテナ・データベース、および非CDBデータベースとマルチテナント・データベースの両方のダウンストリーム・デプロイの例を示します。2つの違いは、TABLEおよびSEQUENCE指定の2つの部分からなるオブジェクト名を使用する必要があるか、または3つの部分からなるオブジェクト名を使用する必要があるかです。詳細とパラメータの説明は、プライマリExtractの基本的なパラメータを参照してください。

    非マルチテナント・データベースをマイニングするExtractの基本的なパラメータ

    EXTRACT financep
    USERIDALIAS c##_alias
    DDL INCLUDE MAPPED
    EXTTRAIL /ggs/dirdat/lt
    SEQUENCE hr.employees_seq;
    TABLE hr.*;

    マルチテナント・データベースからキャプチャするExtractの基本的なパラメータ

    EXTRACT financep
    USERIDALIAS c##_alias
    DDL INCLUDE MAPPED 
    EXTTRAIL /ggs/dirdat/lt
    TABLE test.ogg.tab1;
    SEQUENCE hr.employees_seq;
    TABLE hr.*;
    TABLE sales.*;
    TABLE acct.*;
    

    マイニング・データベースがダウンストリーム・データベースおよび非CDBデータベースの場合のExtractの基本的なパラメータ

    EXTRACT financep
    USERIDALIAS c##_alias 
    TRANLOGOPTIONS MININGUSERALIAS c##_alias 
    TRANLOGOPTIONS INTEGRATEDPARAMS (DOWNSTREAM_REAL_TIME_MINE Y)
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    DDL INCLUDE MAPPED
    ENCRYPTTRAIL AES192
    EXTTRAIL /ggs/dirdat/lt
    SEQUENCE hr.employees_seq;
    TABLE hr.*;
    

    マイニング・データベースがダウンストリーム・データベースおよびマルチテナント・コンテナ・データベースの場合のプライマリExtractの基本的なパラメータ

    EXTRACT financep
    USERIDALIAS tiger1 
    TRANLOGOPTIONS MININGUSERALIAS tiger2 
    TRANLOGOPTIONS INTEGRATEDPARAMS (MAX_SGA_SIZE 164, & 
       DOWNSTREAM_REAL_TIME_MINE y)
    LOGALLSUPCOLS
    UPDATERECORDFORMAT COMPACT
    DDL INCLUDE MAPPED SOURCECATALOG pdb1 INCLUDE MAPPED SOURCECATALOG pdb2
    ENCRYPTTRAIL AES192EXTTRAIL /ggs/dirdat/lt
    TABLE test.ogg.tab1;
    SOURCECATALOG pdb1
    SEQUENCE hr.employees_seq;
    TABLE hr.*;
    SOURCECATALOG pdb2
    TABLE sales.*;
    TABLE acct.*;
    
    パラメータ 説明
    EXTRACT group

    groupは、Extractグループの名前です。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

    USERIDALIAS alias

    Extractに割り当てられるユーザーのデータベース・ログイン資格証明の別名を指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。

    LOGALLSUPCOLS

    競合検出および解決に必要な列、統合Replicatのサポートに必要なスケジューリング列を含む、証跡に補足的にログに記録されるすべての列を書き込みます。(スケジューリング列は、主キー、一意索引および外部キー列です。)これらの列をGGSCIコマンドでログに記録するようにデータベースを構成します。「Oracle GoldenGate資格証明の確立」を参照してください。

    UPDATERECORDFORMAT COMPACT

    UPDATE操作の変更前および変更後のイメージを証跡の単一レコードに結合します。このパラメータは、Oracle Databaseバージョン12c以上で有効で、統合モードのReplicatをサポートします。必須パラメータではありませんが、UPDATERECORDFORMAT COMPACTがベスト・プラクティスで、Replicatパフォーマンスを大幅に改善します。

    TRANLOGOPTIONS MININGUSERALIAS alias

    ダウンストリーム・マイニング・データベース(使用する場合)で、ログマイニング・サーバーの接続情報を指定します。

    MININGUSERALIASでは、ダウンストリーム・マイニング・データベースのExtractユーザーの別名を指定します。これは、「ダウンストリーム・マイニング・データベースの構成」で作成したユーザーです。このユーザーの資格証明は、Oracle GoldenGate資格証明ストアに格納する必要があります。

    データベース・ログマイニング・サーバーがソース・データベースと異なるデータベースにある場合にのみMININGUSERALIASを使用し、そうでない場合はUSERIDALIASを使用します。MININGUSERALIASを使用する場合、両方のデータベースで資格証明が必要なため、USERIDALIASとともに使用します。

    TRANLOGOPTIONS [INTEGRATEDPARAMS (parameter[, ...])]

    (オプション)データベース・ログマイニング・サーバーを含むOracle Databaseにパラメータを渡します。ログマイニング・サーバー・パラメータをデフォルト設定から変更する場合にのみ使用します。「Extractのその他のパラメータ・オプション」を参照してください。

    TRANLOGOPTIONS CHECKPOINTRETENTIONTIME days

    (オプション)チェックポイントが自動的にパージされるまでExtractが保持する日数を制御します。部分的な日数は、10進値を使用して指定されます。たとえば、8.25は8日と6時間を指定します。詳細は、『Oracle GoldenGateリファレンス』を参照してください。

    DDL include_clause

    DDL操作をレプリケートする場合に必要です。詳細は、「DDLサポートの構成」を参照してください。

    ENCRYPTTRAIL algorithm

    ローカル証跡を暗号化します。

    EXTTRAIL pathname

    プライマリExtractによってキャプチャされたデータが書き込まれるローカル証跡のパス名を指定します。

    SOURCECATALOG container

    このパラメータは、ソース・データベースがマルチテナント・コンテナ・データベースの場合に使用します。2つの部分からなる名前を含む後続のすべてのTABLEおよびSEQUENCEパラメータで、デフォルトのコンテナとして使用されるプラガブル・データベースの名前を指定します。このパラメータでは、3つの部分からなる名前(container.schema.object)ではなく、2つの部分からなるオブジェクト名(schema.object)を使用できます。別のSOURCECATALOGパラメータが発生するか、3つの部分からなる完全なTABLEまたはSEQUENCE指定が発生するまで実質的に保持されます。

    {TABLE | SEQUENCE} [container.]schema.object;
    

    データをキャプチャするデータベース・オブジェクトを指定します。

    • TABLEは、表または表のワイルドカード・セットを指定します。

    • SEQUENCEは、順序または順序のワイルドカード・セットを指定します。

    • containerは、オブジェクトを格納するプラガブル・データベース(PDB)の名前です(このデータベースがマルチテナント・コンテナ・データベースの場合)。このExtractグループが1つのPDBからのデータのみを処理し、デフォルトのPDBがSOURCECATALOGパラメータで指定されている場合、名前のコンテナの部分は不要です。

    • schemaは、スキーマ名またはスキーマのワイルドカード・セットです。

    • objectは、表または順序名、またはこれらのオブジェクトのワイルドカード・セットです。

    パラメータ文はセミコロンで終了します。

    名前をワイルドカード指定から除外するには、必要に応じてCATALOGEXCLUDESCHEMAEXCLUDETABLEEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYパラメータを使用します。

    MAPINVISIBLECOLUMNS

    Replicatがデフォルトの列マッピングでOracleターゲット表に非表示列を含めるかどうかを制御します。列マッピングで非表示列を構成するには、SQLを使用して列名を明示的に指定します。たとえば:

    CREATE TABLE tab1 (id NUMBER, data CLOB INVISIBLE);
       INSERT INTO tab1 VALUES (1, 'a');ERROR: ORA-913
       INSERT INTO tab1 (id, data) VALUES (1, 'a'); OK
    

    列の可視性を変更するには、ALTER TABLEを使用します。非表示列は、主キーや一意索引などを含む索引を構成することができます。

  3. 構成に推奨されるオプションのExtractパラメータを入力します。このファイルは、GGSCIのEDIT PARAMSコマンドを使用して、処理を開始する前の任意の時点で編集できます。
  4. ファイルを保存して閉じます。
ローカル証跡の追加

次のステップでは、プライマリExtractによってキャプチャされたデータが書き込まれるローカル証跡を追加します。

ソース・システムで、コマンドラインでADD EXTTRAILコマンドを発行します:

ADD EXTTRAIL pathname, EXTRACT group name

説明:

  • EXTTRAILでは、証跡がローカル・システムに作成されるよう指定します。

  • pathnameは、2文字の名前を含めた、証跡の相対名または完全修飾名です。

  • EXTRACT group nameは、プライマリExtractグループの名前です。

ノート:

Oracle GoldenGateでは、この証跡が処理中に自動的に作成されます。

例3-1

ADD EXTTRAIL /north/ea, EXTRACT exte
リモート証跡の追加

この証跡は、Replicatによって読み取られますが、Extractに関連付ける必要があるため、ターゲットではなく、ソース・システムで追加される必要があります。

次のステップでは、リモート証跡を追加します。

ソース・システムで、次のコマンドを発行します。

ADD RMTTRAIL pathname, EXTRACT group name

説明:

  • RMTTRAILでは、証跡がターゲット・システムに作成されるよう指定します。

  • pathnameは、2文字の名前を含めた、証跡の相対名または完全修飾名です。

  • EXTRACT group nameは、データ・ポンプExtractグループの名前です。

ノート:

Oracle GoldenGateでは、この証跡が処理中に自動的に作成されます。

例3-2

ADD RMTTRAIL /south/re, EXTRACT exts

自動取得モードの設定

自動Extractモードでは、論理レプリケーションが有効になっているすべての表に対する変更がキャプチャされます。

自動取得モードは、Oracle Database 21c以降で使用できます。次の場合に、表の論理レプリケーションまたは自動取得が可能になります。
  • テーブルまたはスキーマ・レベルで十分なIDまたはスケジューリング・キーのサプリメンタル・ログ・データがあること。

  • 主キー(PK)、一意識別子(UI)、外部キー(FK)サプリメンタル・ログ・データおよびALLKEYSサプリメンタル・ログ・データがあること。主キーがない場合、スキーマ全体のサプリメンタル・ロギング・レベルですべての一意キーがログに記録されるため、PK、UIおよびFKに加えてALLKEYSが必要です。

自動Extractモードを使用する利点

  • キャプチャされる表セットの構成が容易

  • キャプチャされる表セットの変更時に、TABLE/TABLEEXCLUDEパラメータを更新することや、Extractを停止して再起動することが不要になります。

自動取得の有効化

構文と使用方法は、TRANLOGOPTIONSを参照してください。

次のDDLを使用して、表レベルで自動キャプチャを有効にします。

CREATE/ALTER TABLE table_name ENABLE LOGICAL REPLICATION ALLKEYS

または

CREATE/ALTER TABLE table_name ENABLE LOGICAL REPLICATION ALLOWNONVALIDATEDKEYS

マイニング・モードの切り替え

マイニング・モードの切り替えは、サポートされていません。そのため、ROOTでマイニングを作成すると、セッションはROOTでマイニングする状態を維持し、されたままになり、PDBでマイニングでマイニングを作成すると、セッションはその特定のPDBでマイニングする状態を維持します。

ただし、特定のニーズのために、CDB$ROOTの以前のOracle GoldenGateセッション・マイニングを特定のPDBのマイニングに移行する必要がある場合は、次の移行プロセスを実行できます。
  1. 新しいPDB単位のExtractを登録します。たとえば、戻されるSCNがXだとします。

  2. 古いROOT Extractは、過去のXをマイニングするままにしておきます(RECOVERYSCN X)。

  3. 古いExtractを停止します

  4. 現在のSCNがYに設定されるように、新しいExtractを変更します。

  5. 新しいExtractを開始します。

この新しいExtractは、古いExtractが中断したところから採取します。

ノート:

同じSCN Yで複数のtxsのコミットが発生していた場合は、SCN Yで重複するトランザクションが存在することがあります。ただし、Replicatは重複するtxsをデフォルトで処理できます。

プラガブル・データベースへの適用

Replicatは、1つのプラガブル・データベースのみに接続して適用できます。正しいものを指定するには、USERIDまたはUSERIDALIASパラメータで指定するデータベース・ユーザーにSQL*Net接続文字列を使用します。例: GGADMIN@DBEAST

パラメータ・ファイルで、MAP文のTARGETの部分に、schema.objectのみを指定します。MAPの部分で、3つの部分からなる名前の複数のプラガブル・データベースからキャプチャされるソース・オブジェクトを識別するか、2つの部分からなる名前のSOURCECATALOGパラメータを使用します。次に、この構成の例を示します。

SOURCECATALOG pdbeast
MAP hr.employees, TARGET hr.employees;
MAP hr.seq, TARGET hr.employees;
SOURCECATALOG pdbwest
MAP hr.*, TARGET hr.*;
MAP hr.seq, hr.*;

次に、SOURCECATALOGを使用せずにソース・プラガブル・データベースを識別する例を示します。この場合、ソース・オブジェクトは3つの部分からなる名前で指定されます。

MAP pdbeast.hr.employees, TARGET hr.*;
MAP pdbeast.hr.seq, TARGET hr.*;

複数のソース・プラガブル・データベースから複数のターゲット・プラガブル・データベースへのレプリケーションを構成するには、パラレルExtractおよびReplicatストリームを構成し、それぞれ1つのプラガブル・データベースのデータを処理できます。または、複数のソース・プラガブル・データベースから1つのExtractキャプチャを構成できます(複数のReplicatグループによって読み取られる1つの証跡を書き込み、それぞれ異なるターゲット・プラガブル・データベースに適用します)。

さらに別の方法として、複数の証跡への1つのExtract書込みを使用する方法があり、各証跡は、特定のターゲット・プラガブル・データベースに割り当てられたReplicatによって読み取られます。

PDBレベルでのReplicatの構成およびReplicatグループの追加のステップは、Replicatの構成を参照してください。

Replicatグループの追加

次のステップでは、リモート証跡を読み取り、データ変更をターゲットOracle Databaseに適用するReplicatグループを追加します。

  1. CONNECTコマンドを使用して管理クライアントからデプロイメントに接続します。
  2. 統合Replicatを使用する場合は、DBLOGINコマンドを発行してデータベースにログインします。
    DBLOGIN USERIDALIAS alias

    aliasでは、Replicatに割り当てられているデータベース・ログイン資格証明のエイリアスを指定します。この資格証明は、Oracle GoldenGate資格証明ストアに存在する必要があります。詳細は、「Oracle GoldenGate資格証明の確立」を参照してください

  3. 次の構文を使用して、ADD REPLICATコマンドを発行します。
    ADD REPLICAT group name, [INTEGRATED,] EXTTRAIL pathname

    説明:

    • group nameは、Replicatグループの名前です。

    • INTEGRATEDでは、統合Replicatグループが作成されます。

    • EXTTRAIL pathnameは、2文字の名前を含めた、リモート証跡の相対名または完全修飾名です。

      詳細は、『Oracle GoldenGateリファレンス』を参照してください。

例3-3 非統合Replicatの追加

ADD REPLICAT repe, EXTTRAIL east/ea

例3-4 統合Replicatの追加

ADD REPLICAT repn, INTEGRATED, EXTTRAIL north/em

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

プラガブル・データベース、スキーマおよびオブジェクトを構成から除外するには、CATALOGEXCLUDESCHEMAEXCLUDETABLEEXCLUDEMAPEXCLUDEおよびEXCLUDEWILDCARDOBJECTSONLYパラメータを使用できます。