競合解決のためのOracle GoldenGateパラメータ・ファイルの構成
競合検出および解決をサポートするには、次のパラメータが必要です。
- Replicatパラメータ・ファイル内の
MAP
パラメータのCOMPARECOLS
オプションを使用して、ReplicatのWHERE
句で変更前の値とともに使用する列を指定します。変更前の値は、更新および削除の競合を検出するために、ターゲット・データベースの現行値と比較されます。(デフォルトでは、ReplicatはWHERE
句で主キーのみを使用しますが、これでは競合検出には不十分な場合があります)。 MAP
パラメータのRESOLVECONFLICT
オプションを使用して、様々な操作や競合タイプに対する競合解決ルーチンを指定します。RESOLVECONFLICT
をMAP
文で複数回使用すると、競合タイプごとに異なる解決を指定できます。ただし、同じ競合タイプについてRESOLVECONFLICT
を繰り返して使用することはできません。同じ競合は同じ最終結果となるように、すべてのデータベースで同一の競合解決手順を使用してください。1つの競合解決方法で、発生する可能性のあるすべての競合に対応できるわけではありません。障害のリスクを最小化するため、状況に応じて、論理的な優先順でコールできる複数のルーチンを作成する必要があります。
ノート:
表に主キーと他の一意索引または一意キーが含まれている場合は、他にも考慮すべき事項があります。COMPARECOLS
パラメータとRESOLVECONFLICT
パラメータで自動ルーチンが指定されている場合、一貫した方法で各行を一意に識別する必要があります。一貫した方法で行を識別できない場合、競合解決時にエラーが発生します。このような状況では、主キー以外の一意キーを無効化するか、または、SQLEXEC
機能を使用してスローされたエラーを処理することで競合を解決できます。
これらのパラメータの詳細は、Oracle GoldenGateパラメータおよび機能リファレンスを参照してください。これらのパラメータの詳細は、CDRの例1: USEMAX、OVERWRITE、DISCARDによるすべての競合タイプの処理以降の例を参照してください。