4 「キャプチャおよび適用モードの選択」

この章では、データベース環境に適切なキャプチャおよび適用モードを決定するために役立つ情報について説明します。

内容は次のとおりです。

Oracle GoldenGateキャプチャおよび適用プロセスの概要

Oracle GoldenGateキャプチャ・プロセスは、Extractと呼ばれます。Extractプロセスの各インスタンスは、groupと呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。

data pumpと呼ばれる追加のExtractプロセスは、ソース・システムで使用することをお薦めします(これにより、キャプチャされたデータは、trailと呼ばれる一連のファイルにローカルに保持できます)。データ・ポンプはデータをキャプチャしませんが、ローカルの証跡を読み取り、ネットワーク経由でデータをターゲットに伝播します。

Oracle GoldenGate適用プロセスは、Replicatと呼ばれます。Replicatプロセスの各インスタンスは、groupと呼ばれ、プロセス自身と、プロセスをサポートする関連ファイルが含まれます。Replicatは、trailと呼ばれる、ローカル記憶域に送信されるデータを読み取り、ターゲット・データベースに適用します。

次の図は、基本的なOracle GoldenGateプロセス構成を示しています。

oracle_config.pngの説明が続きます
図illustration oracle_config.pngの説明

ノート:

Oracle Databaseは、Extractでログ・ファイルを処理できるように、ARCHIVELOGモードにする必要があります。

使用するキャプチャ方法の決定

Oracleソース・データベースの場合、統合キャプチャ・モードまたはクラシック・キャプチャ・モードのいずれかでExtractを実行できます。

クラシック・キャプチャ・モードも使用できますが、クラシック・キャプチャは非推奨であり、将来のリリースで拡張されないため、統合キャプチャ・モードを使用することをお薦めします。これは今後のリリースではサポートされなくなるため、クラシックExtractの構成は統合Extractに移行する必要があります。

使用する方法によって、Oracle GoldenGateプロセスの構成が決定されますが、次のような要因に依存します。

  • 含まれるデータ型

  • データベース構成

  • Oracle Databaseのバージョン

次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。

統合キャプチャについて

統合キャプチャ・モードでは、Oracle GoldenGate Extractプロセスはデータベース・ログマイニング・サーバーと直接対話し、論理変更レコード(LCR)形式でデータの変更を受け取ります。次の図は、統合キャプチャ・モードでのExtractの構成を示しています。

統合キャプチャでは、クラシック・キャプチャより多くのデータと記憶域のタイプがサポートされ、サポートがより透過的です。詳細は、「各キャプチャ・モードでサポートされるOracleデータ型とオブジェクトのサマリー」を参照してください。

統合キャプチャのその他の利点は、次のとおりです。

  • 統合キャプチャはデータベースと完全に統合されているため、Oracle RAC、ASMおよびTDEと組み合せる場合に追加設定は必要ありません。

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

  • 統合キャプチャによって、表のフィルタリングが高速になります。

  • 統合キャプチャでは、Point-in-TimeリカバリおよびRAC統合がより効率的に処理されます。

  • 統合キャプチャには、統合ログ管理の機能が備わっています。Oracle Recovery Manager (RMAN)で、Extractで必要なアーカイブ・ログが自動的に保持されます。

  • 統合キャプチャは、マルチテナント・コンテナ・データベースからのキャプチャをサポートする唯一のモードです。1つのExtractで、マルチテナント・コンテナ・データベース内の複数のプラガブル・データベースをマイニングできます。

  • リリース11.2.0.4以降のソース・データベース(11.2.0.4以上に設定されたソース互換性)の場合、DDLのキャプチャはログマイニング・サーバーによって非同期に実行され、専用のトリガー、表またはその他のデータベース・オブジェクトをインストールする必要はありません。Oracle GoldenGate のアップグレードは、ユーザー・アプリケーションを停止することなく実行できます。DDLトリガーおよびサポート・オブジェクトを使用する必要があるのは、Extractが統合モードで、Oracle 11gソース・データベースがバージョン11.2.0.4より前の場合です。

  • 統合キャプチャおよび統合適用はどちらもデータベース・オブジェクトのため、オブジェクトの名前付けは他のOracle Databaseオブジェクトと同じルールに従います(『Oracle GoldenGateの管理』Oracle GoldenGateの入力におけるオブジェクト名の指定に関する項を参照)。

統合キャプチャ・デプロイ・オプション

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

  • ローカル・デプロイ: ローカル・デプロイの場合、ソース・データベースとマイニング・データベースは同じです。ソース・データベースは、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と互換性がないので使用できないことに注意してください。

クラシック・キャプチャについて

クラシック・キャプチャ・モードでは、Oracle GoldenGate Extractプロセスは、ソース・システムのOracle REDOまたはアーカイブ・ログ・ファイルまたはスタンバイ・システムの転送されたアーカイブ・ログからデータ変更をキャプチャします。次の図は、クラシック・キャプチャ・モードでのExtractの構成を示しています。

ノート:

Oracle GoldenGate 18c (18.1.0)以上のリリースでは、クラシック・キャプチャは非推奨になりました。
classiccapture.pngの説明が続きます
図classiccapture.pngの説明

クラシック・キャプチャでは、ほとんどのOracleデータ型が完全にサポートされ、複雑なデータ型は制限付きでサポートされます。クラシック・キャプチャは、オリジナルのOracle GoldenGateキャプチャ方法です。クラシック・キャプチャは、マルチテナント・コンテナ・データベースを除く、Oracle GoldenGateでサポートされる任意のソースOracle RDBMSに対して使用できます。

詳細は、「サポートされるOracleデータ型およびオブジェクトの詳細」を参照してください。

使用する適用方法の決定

Replicatプロセスは、レプリケートされたデータをOracleターゲット・データベースに適用します。

Oracleターゲット・データベースの場合、非統合モードまたは統合モードのいずれかでReplicatをパラレルに実行できます。特定の機能で別のタイプのReplicatが必要な場合を除き、Oracleでは並列Replicatを使用することをお薦めします。

内容は次のとおりです。

並列Replicatについて

並列Replicatは、パフォーマンスを向上させるために並列でトランザクションを適用する新しいReplicatの種類です。

統合Replicatと同様に、トランザクション間の依存関係が考慮されます。データベースの外部で依存性の計算、マッピングの並列処理および適用が実行されるため、負荷が別のサーバーに移されます。このプロセスでトランザクションの整合性が維持されます。さらに、並列Replicatは、大きなトランザクションをチャンクに分割してパラレルに適用することで、大きなトランザクションのパラレル適用をサポートします。

次の表に、それぞれのReplicatでサポートされる機能を示します。

機能 並列Replicat 統合Replicat 調整Replicat クラシックReplicat

バッチ処理

あり

あり

あり

あり

バリア・トランザクション

あり

あり

あり

なし

依存関係の計算

あり

あり

なし

なし

自動並列化

あり

あり

なし

なし

DMLハンドラ

あり、統合モード

あり

なし

なし

プロシージャ・レプリケーション

あり。統合並列Replicat (iPR)に使用されます

あり

なし

なし

自動CDR

あり。iPRによってのみ使用されます

あり

なし

なし

依存関係を認識したトランザクション分割

あり

なし

なし

なし

RACノード間の処理

あり

なし

あり

なし

ALLOWDUPTARGETMAP

「ALLOWDUPTARGETMAP | NOALLOWDUPTARGETMAP」を参照してください。

なし。iPRを備えたOracle Database

なし。Oracle Database

あり

あり

並列Replicatは非統合オプションを使用するすべてのデータベースをサポートします。並列Replicatは完全なメタデータを持つ証跡からのデータ・レプリケーションのみをサポートし、従来の証跡形式を必要とします。

並列Replicatのコンポーネントは次のとおりです。
  • マッパーはパラレルに動作し、証跡の読取り、証跡レコードのマッピング、マップされたレコードの統合Replicat LCR形式への変換、および後続の処理のためのマージャへのLCRの送信を実行します。1つのマッパーが1つのセットのトランザクションをマップしている間に、次のマッパーが次のセットのトランザクションをマップします。証跡情報は分割されますが、証跡情報が正しく順序付けされるため、証跡ファイルはそのままの状態になります。

  • マスター・プロセスにはコレータとスケジューラの2つのスレッドがあります。コレータはマスターからマップされたトランザクションを受け取り、依存関係の計算のために証跡の順序に戻します。スケジューラがトランザクション間の依存関係を計算し、トランザクションを独立したバッチにグループ化し、ターゲット・データベースに適用するためにバッチをアプライアに送信します。

  • アプライアは配列実行のためにバッチ内のレコードを並べ替えます。さらにバッチをターゲット・データベースに適用し、エラー処理を実行します。また、適用したトランザクションをチェックポイント表で追跡します。

非統合Replicatについて

非統合モードでは、Replicatプロセスは標準のSQLを使用してデータを直接ターゲット・データベースに適用します。このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。

  • Oracle Call Interface (OCI)でSQLをターゲットに適用する。

次の図は、非統合モードでのReplicatの構成を示しています。

統合Replicatモードでサポートされない機能を多用する場合、非統合Replicatを使用します(「統合Replicatモードについて」を参照)。

条件付きReplicat構成を使用することで、トランザクションを非統合Replicatと並行して適用できます。

統合Replicatモードについて

統合モードでは、Replicatプロセスは、Oracle Database内で使用可能な適用処理機能を利用します。このモードでは、Replicatは次のように動作します。

  • Oracle GoldenGate証跡を読み取ります。

  • データのフィルタリング、マッピング、および変換を実行します。

  • ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築する(コミットされた順)。DDLはReplicatによって直接適用されます。

  • 軽量ストリーミング・インタフェースによって、データベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスにアタッチする。

  • データがターゲット・データベースに適用されるインバウンド・サーバーにLCRを転送します。

次の図は、統合モードでのReplicatの構成を示しています。

単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。次の図は、2つの並列適用サーバーで構成された統合Replicatを示しています。

統合Replicatはトランザクションを非同期に適用します。高速のスループットを達成するために、相互依存性のないトランザクションを安全に実行して順不同でコミットできます。相互依存性のあるトランザクションは、ソースと同じ順序で適用されます。

インバウンド・サーバーのリーダー・プロセスは、ターゲット・データベースで定義される制約(主キー、一意キー、外部キー)に基づいて、ワークロードのトランザクション間の相互依存性を計算します。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスは、複数のトランザクションを調整し、適用サーバー間の順序を管理します。

インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーから切断して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、OCIを使用して直接適用モードでトランザクションをデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。

次の機能は、Replicatによって直接モードで適用されます。

  • DDL操作

  • 順序操作

  • TABLE内のSQLEXECパラメータまたはMAPパラメータ

  • EVENTACTIONS処理

  • UDTに関するノート: ExtractがUSENATIVEOBJSUPPORTを使用してUDTを取得すると、統合Replicatがインバウンド・サーバーで適用し、そうでない場合は、Replicatによって直接処理されます。

トランザクションは、直接適用モードでシリアルに適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します(『Oracle DatabaseのためのOracle GoldenGateの使用』インスタンス化後の処理の監視および制御に関する項を参照)。

ノート:

ユーザー・イグジットは統合モードで実行されます。ユーザー・イグジットにより予期しない結果が発生する場合がありますが、終了コードは、レプリケーション・ストリームのデータによって異なります。

統合Replicatの利点

非統合Replicatではなく統合Replicatを使用する利点は次のとおりです。

  • 統合Replicatは、複数のトランザクションを同時に適用するパラレル適用プロセス間で自動的にパーティション化でき、ソース・トランザクションの完全性とアトミック性を保持します。適用プロセスの最小数および最大数の両方をPARALLELISMおよびMAX_PARALLELISMパラメータで構成できます。Replicatは、ワークロードが増加すると、追加のサーバーを自動的に追加し、ワークロードが軽減されると、再度下方に調整します。

  • 統合Replicatでは、最小の作業を構成する必要があります。すべての作業は、レンジ・パーティションを構成することなく1つのReplicatパラメータ・ファイル内に構成されます。

  • 高パフォーマンスの適用ストリーミングは、Replicatおよびインバウンド・サーバー間で、軽量アプリケーション・プログラミング・インタフェース(API)によって、統合Replicatで有効化されます。

  • バリア・トランザクションは、複数のサーバー適用プロセス間で、統合Replicatによって調整されます。

  • DDL操作は、DDLの実行前にサーバー処理が完了まで待機することで、バリアを強制する直接トランザクションとして処理されます。

  • 一時的な重複主キー更新は、統合Replicatによってシームレスに処理されます。

  • 統合Replicatは、単一またはプラガブル・データベースで動作します。

統合Replicatの要件

統合Replicatを使用するには、次の条件を満たす必要があります。

  • ターゲットOracle DatabaseがOracle 11.2.0.4以上である必要があります。

  • 表間の依存性の計算およびターゲットでの同時トランザクションのスケジューリングをサポートするには、サプリメンタル・ロギングをソース・データベースで有効にする必要があります。必要なロギングの有効化の手順は、「ロギング・プロパティの構成」を参照してください。このロギングは任意の時点で有効化できますが、その前に、Oracle GoldenGateプロセスを開始します。

  • 統合並列ReplicatはOracle Database 12.2.0.1以上でサポートされます。

異なるキャプチャおよび適用モードの併用

統合キャプチャおよびクラシック・キャプチャを同じソースOracle GoldenGateインスタンス内で同時に使用し、統合Replicatおよび非統合Replicatを同じターゲットOracle GoldenGateインスタンス内で同時に使用できます。クラシック・キャプチャ・モードと統合キャプチャ・モード間、および非統合Replicatモードと統合Replicatモード間では、DDLまたはDMLは調整されないため、この構成には、適切なプロセス・グループ内にオブジェクトを慎重に配置する必要があります。

各Extractグループでは、表のデータ型および属性に基づいて、処理モードに適したオブジェクトを処理する必要があります。一方のExtractのオブジェクトに、もう一方のExtractのオブジェクトのDMLまたはDDL依存性を含めることはできません。同じタイプの分離をReplicat構成に適用する必要があります。

次のキャプチャおよび適用モードを一緒に使用できます。

  • クラシック・キャプチャ(Oracleまたは非Oracleソース)および非統合Replicat

  • クラシック・キャプチャ(Oracleまたは非Oracleソース)および統合Replicat

  • 統合キャプチャおよび非統合Replicat

  • 統合キャプチャおよび統合Replicat

Oracleバージョンによってサポートされる場合、推奨されるOracle GoldenGate構成は、1つの統合キャプチャをOracleソースで使用し、Oracleターゲットのソース・データベースごとに、1つの統合Replicatを使用することです。統合キャプチャは、クラシック・キャプチャよりも特定のデータ型を完全にサポートします。インバウンド・サーバーを使用するか、必要時に直接適用に切り替えることで、1つの統合Replicat構成ですべてのOracleデータ型をサポートし、ソース・トランザクションの完全性を保持します。必要に応じて、並列度設定を目的の適用パフォーマンス・レベルに調整できます。

ターゲット・データベースが統合ReplicatをサポートしないOracleバージョンか、Oracle Database以外の場合は、調整済のReplicat構成を使用できます。詳細は、『Oracle GoldenGateの管理』を参照してください。

異なるプロセスモードへの切替え

プロセス・モードを切り替えることができます。たとえば、クラシック・キャプチャから統合キャプチャ、統合キャプチャからクラシック・キャプチャに切り替えることができます。

手順は、『Oracle GoldenGateの管理』管理操作の実行に関する項を参照してください。