統合Replicatについて
統合モードのReplicatでは、ターゲットのOracleデータベース内で利用可能な適用処理機能を使用します。このモードでは、Replicatは、証跡を読み取り、ソースのDMLまたはDDLトランザクションを表す論理変更レコードを作成し、それらのレコードをOracleターゲット・データベースのインバウンド・サーバーに送信します。インバウンド・サーバーは、データをターゲット・データベースに適用します。
ノート:
統合Replicatは、オンライン・プロセスでしかありません。初期ロードを実行するためには使用しないでください。
統合モードでは、Replicatプロセスは、Oracle 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では、外部キー列が索引付けされている必要があります。