Oracle® Fusion Middleware Oracle DatabaseのためのOracle GoldenGateのインストールおよび構成 12c (12.2.0.1) E70107-04 |
|
![]() 前 |
![]() 次 |
Replicatプロセスは、レプリケートされたデータをOracleターゲット・データベースに適用します。Oracle GoldenGateプロセスの詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
Oracleターゲット・データベースの場合、非統合モードまたは統合モードのいずれかでReplicatを実行できます。次に、これらのモードと各モードでサポートされるデータベースのバージョンについて説明します。
非統合モードでは、Replicatプロセスは標準のSQLを使用してデータを直接ターゲット・データベースに適用します。このモードでは、Replicatは次のように動作します。
Oracle GoldenGate証跡を読み取ります。
データのフィルタリング、マッピング、および変換を実行します。
ソース・データベースのDMLまたはDDLトランザクションを表すSQL文を作成します(コミット順)。
Oracle Call Interface (OCI)でSQLをターゲットに適用する。
図5-4は非統合モードでのReplicatの構成を示しています。
非統合Replicatは、次の場合に使用します。
ターゲットOracle DatabaseのバージョンがOracle 11.2.0.4より前の場合。
非統合Replicatモードでサポートされない機能を多用する場合。詳細は、「統合Replicatについて」を参照してください。
条件付きReplicat構成を使用することで、トランザクションを非統合Replicatと並行して適用できます。詳細は、Oracle GoldenGateの管理for Windows and UNIXを参照してください。
統合モードでは、Replicatプロセスは、Oracle Database内で使用可能な適用処理機能を利用します。このモードでは、Replicatは次のように動作します。
Oracle GoldenGate証跡を読み取ります。
データのフィルタリング、マッピング、および変換を実行します。
ソース・データベースDMLトランザクションを表す論理変更レコード(LCR)を構築する(コミットされた順)。DDLはReplicatによって直接適用されます。
軽量ストリーミング・インタフェースによって、データベース・インバウンド・サーバーと呼ばれるターゲット・データベースのバックグラウンド・プロセスにアタッチする。
データがターゲット・データベースに適用されるインバウンド・サーバーにLCRを転送します。
図5-5は統合モードでのReplicatの構成を示しています。
単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。この並列度は、Replicatプロセスの構成時、または必要に応じて動的に、ターゲット・システムのサポートに応じて増加できます。図5-6は2つの並列適用サーバーで構成された統合Replicatを示しています。
統合Replicatはトランザクションを非同期に適用します。高速のスループットを達成するために、相互依存性のないトランザクションを安全に実行して順不同でコミットできます。相互依存性のあるトランザクションは、ソースと同じ順序で適用されます。
インバウンド・サーバーのリーダー・プロセスは、ターゲット・データベースで定義される制約(主キー、一意キー、外部キー)に基づいて、ワークロードのトランザクション間の相互依存性を計算します。バリア・トランザクションおよびDDL操作も自動的に管理されます。コーディネータ・プロセスは、複数のトランザクションを調整し、適用サーバー間の順序を管理します。
インバウンド・サーバーが構成済機能または列タイプをサポートしていない場合、Replicatはインバウンド・サーバーから切断して、インバウンド・サーバーがキューのトランザクションを完了するのを待機し、OCIを使用して直接適用モードでトランザクションをデータベースに適用します。Replicatは、直接トランザクションの適用後に統合モードで処理を再開します。
次の機能は、Replicatによって直接モードで適用されます。
DDL操作
順序操作
TABLE
内のSQLEXEC
パラメータまたはMAP
パラメータ
EVENTACTIONS
処理
UDTに関する注意: ExtractがUSENATIVEOBJSUPPORT
を使用してUDTを取得すると、統合Replicatがインバウンド・サーバーで適用し、そうでない場合は、Replicatによって直接処理されます。
トランザクションは、直接適用モードでシリアルに適用されるため、このような操作を多用すると、統合Replicatモードのパフォーマンスが低下する場合があります。統合Replicatは、適用処理のほとんどが統合モードで実行可能な場合に、最高のパフォーマンスを発揮します。「インスタンス化後の処理の監視および制御」を参照してください。
注意:
ユーザー・イグジットは統合モードで実行されます。ユーザー・イグジットにより予期しない結果が発生する場合がありますが、終了コードは、レプリケーション・ストリームのデータによって異なります。
非統合Replicatではなく統合Replicatを使用する利点は次のとおりです。
統合Replicatは、複数のトランザクションを同時に適用するパラレル適用プロセス間で自動的にパーティション化でき、ソース・トランザクションの完全性とアトミック性を保持します。適用プロセスの最小数および最大数の両方をPARALLELISM
およびMAX_PARALLELISM
パラメータで構成できます。Replicatは、ワークロードが増加すると、追加のサーバーを自動的に追加し、ワークロードが軽減されると、再度下方に調整します。
統合Replicatでは、最小の作業を構成する必要があります。すべての作業は、レンジ・パーティションを構成することなく1つのReplicatパラメータ・ファイル内に構成されます。
高パフォーマンスの適用ストリーミングは、Replicatおよびインバウンド・サーバー間で、軽量アプリケーション・プログラミング・インタフェース(API)によって、統合Replicatで有効化されます。
バリア・トランザクションは、複数のサーバー適用プロセス間で、統合Replicatによって調整されます。
DDL操作は、DDLの実行前にサーバー処理が完了まで待機することで、バリアを強制する直接トランザクションとして処理されます。
一時的な重複主キー更新は、統合Replicatによってシームレスに処理されます。
統合Replicatは、単一またはプラガブル・データベースで動作します。
統合Replicatを使用するには、次の条件を満たす必要があります。
ターゲットOracle DatabaseがOracle 11.2.0.4以上である必要があります。
表間の依存性の計算およびターゲットでの同時トランザクションのスケジューリングをサポートするには、サプリメンタル・ロギングをソース・データベースで有効にする必要があります。必要なロギングの有効化の手順は、「ロギング・プロパティの構成」を参照してください。このロギングは任意の時点で有効化できますが、その前に、Oracle GoldenGateプロセスを開始します。