統合Replicatについて
統合モードでは、Replicatは、ターゲットのOracle AI Database内で使用可能な適用処理機能を利用します。このモードでは、Replicatは、証跡を読み取り、ソースのDMLまたはDDLトランザクションを表す論理変更レコードを作成し、それらのレコードをOracleターゲット・データベースのインバウンド・サーバーに送信します。インバウンド・サーバーは、データをターゲット・データベースに適用します。
ノート:統合Replicatは、オンライン・プロセスでしかありません。初期ロードを実行するためには使用しないでください。
統合モードでは、Replicatプロセスは、Oracle AI Database内で使用可能な適用処理機能を活用します。このモードでは、Replicatは次のように動作します:
-
Oracle GoldenGateトレイルを読み取ります。
-
データのフィルタリング、マッピングおよび変換を実行します。
-
ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築します(コミット済順)。DDLは、Replicatによって直接適用されます。
-
軽量ストリーミング・インタフェースを通じてデータベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスにアタッチします。
-
LCRをインバウンド・サーバーに送信し、そこからデータをターゲット・データベースに適用します。
単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。次の図は、2つの並列適用サーバーで構成された統合Replicatを示しています。

上の図では、統合Replicatはトランザクションを非同期に適用します。相互依存関係のないトランザクションは、高速スループットを実現するために、相互依存性のないトランザクションを安全に実行して順不同 でコミットできます。依存関係のあるトランザクションは、ソースと同じ順序で適用されることが保証されます。
インバウンド・サーバーのリーダー・プロセスでは、ターゲット・データベースで定義される制約(主キー、一意キーの外部キー)に基づいて、ワークロードのトランザクション間の依存性が計算されます。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスでは、複数のトランザクションが調整され、適用サーバー間の順序が維持されます。
インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーとの通信を停止して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、その後、OCIを介して、トランザクションを直接適用モードでデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。
Replicatでは、次の機能が直接モードで適用されます。
-
DDL操作
-
順序操作
-
TABLE内のSQLEXECパラメータまたはMAPパラメータ -
EVENTACTIONS処理
トランザクションは、順次に適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します。
ノート:ユーザー・イグジットは統合モードで実行されます。ただし、終了コードがレプリケーション・ストリームのデータに依存している場合は、ユーザー・イグジットによって予期しない結果が発生することがあります。
ノート:統合Replicatでは、外部キー列が索引付けされている必要があります。
統合Replicatの利点
非統合Replicatではなく統合Replicatを使用する利点は次のとおりです。
-
統合Replicatは、複数のトランザクションを同時に適用するパラレル適用プロセス間で自動的にパーティション化でき、ソース・トランザクションの完全性とアトミック性を保持します。適用プロセスの最小数および最大数の両方を
PARALLELISMおよびMAX_PARALLELISMパラメータで構成できます。Replicatは、ワークロードが増加すると、追加のサーバーを自動的に追加し、ワークロードが軽減されると、再度下方に調整します。 -
統合Replicatでは、構成のための最小限の作業が必要です。すべての作業は、レンジ・パーティションを構成することなく1つのReplicatパラメータ・ファイル内に構成されます。
-
高パフォーマンスの適用ストリーミングは、Replicatおよびインバウンド・サーバー間で、軽量アプリケーション・プログラミング・インタフェース(API)によって、統合Replicatで有効化されます。
-
バリア・トランザクションは、複数のサーバー適用プロセス間で、統合Replicatによって調整されます。
-
DDL操作は、DDLの実行前にサーバー処理が完了まで待機することで、バリアを強制する直接トランザクションとして処理されます。
-
一時的な重複主キー更新は、統合Replicatによってシームレスに処理されます。
統合Replicatの要件
統合Replicatを使用するには、次の条件を満たす必要があります。
-
表間の依存性の計算およびターゲットでの同時トランザクションのスケジューリングをサポートするには、サプリメンタル・ロギングをソース・データベースで有効にする必要があります。必要なロギングを有効にする手順は、「トランザクション・ログの設定と要件」を参照してください。このロギングは、Oracle GoldenGateプロセスを開始する前にいつでも有効にできます。
-
統合モードの並列Replicatは、Oracle Database 12.2.0.1以上でサポートされています。