パラレルReplicatについて

並列Replicatは、パフォーマンス向上のために並列でトランザクションを適用する別のReplicatです。

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

パラレルReplicatは、統合モードと非統合モードの2つのモードをサポートします。統合モードのパラレルReplicatは、Oracle AI Databaseでのみサポートされます。

並列Replicatを使用するには、次の値(デフォルト値)も設定する必要があります。

統合並列Replicatの場合、Replicatは、ターゲット・データベースにデータを適用するインバウンド・サーバーにLCRを送信し、通常の並列Replicatの場合、Oracle GoldenGateは、他の非統合レプリカの動作と同様に、LCRをSQL文としてデータベースに直接適用します。ノート: OLTPワークロードで最適なパフォーマンスが得られるように、非統合モードのパラレルReplicatをお薦めします。

パラレルReplicatのコンポーネントは次のとおりです。

パラレルReplicatの利点

パラレルReplicatを使用する利点は次のとおりです。

パラレル・レプリケーション・アーキテクチャ

パラレル・レプリケーション・プロセスでは、統合モードの場合に、Oracle AI Database内で使用可能な適用処理機能を活用します。単一のReplicat構成内で、適用サーバーと呼ばれるインバウンド・サーバーの複数の子プロセスがトランザクションをパラレルに適用し、元のトランザクションのアトミック性を保持します。

次のアーキテクチャ図に、非統合並列Replicatの証跡ファイルからターゲット・データベースへのパラレル・レプリケーションの様々なプロセスにおける変更レコードのフローを示します。

para_rep_arch.pngの説明が続きます

次に、前述のアーキテクチャ図の説明を示します。

パラレルReplicatの基本パラメータ

次の表に、基本的な並列Replicatのパラメータおよびその説明をリストします。

パラメータ 摘要

MAP_PARALLELISM

マッパーの数を構成します。これは、証跡ファイルを読み取るために使用されるスレッドの数を制御します。最小値は1、最大値は100、デフォルト値は2です。

APPLY_PARALLELISM

アプライアの数を構成します。これによって、変更の適用に使用するターゲット・データベース内の接続数を制御します。デフォルト値は4です。

MIN_APPLY_PARALLELISM

MAX_APPLY_PARALLELISM

適用の並列性は自動的にチューニングされます。最小値と最大値を設定して、Replicatが自動的に並列化を調整する範囲を定義できます。デフォルトはありません。APPLY_PARALLELISMを同時に使用しないでください。

SPLIT_TRANS_RECS

大きなトランザクションを指定のサイズのピースに分割して、パラレルに適用するように指定します。ピース間の依存性関係は引き続き尊重されます。デフォルトでは無効です。

COMMIT_SERIALIZATION

FULL直列化モードのコミットを有効にし、証跡の順序でトランザクションを強制的にコミットします。

拡張パラメータ

LOOK_AHEAD_TRANSACTIONS

スケジューラがトランザクションをバッチリングする際にどれくらい先まで認識するかを管理します。デフォルト値は10000です。

CHUNK_SIZE

パラレルReplicatで、どの程度の大きさのトランザクションを大きいトランザクションとみなすかを制御します。並列Replicatは、このサイズより大きいトランザクションが検出されると、そのトランザクションをシリアライズするためにパフォーマンスが低下させます。ただし、この値を大きくすると、並列Replicatによって消費されるメモリーも増加します。

パラメータ・ファイルの例

REPLICAT repe USERID ggadmin, password ***
MAP_PARALLELISM 3
MIN_APPLY_PARALLELISM 2
MAX_APPLY_PARALLELISM 10
SPLIT_TRANS_RECS 60000
MAP *.*, TARGET *.*;