1.4 Oracle GoldenGate Veridataの仕組み
- MOOS (Maybe Out-Of-Sync)の初期ステップまたは行ハッシュ・ステップ
- COOS - 非同期確認
図1-2 Veridataの仕組み

1.4.1 MOOS (Maybe Out of Sync)の初期ステップまたは行ハッシュ・ステップ
- ソース/ターゲット・データベースから行が取得されます
- データが標準形式に変換されます
- データをハッシュしてサーバーに送信されます
- 非同期行がMOOSキューに格納されます
比較が開始されると、Oracle GoldenGate Veridataエージェントは、指定された問合せを使用してソース表とターゲット表の両方から行を取得します。
Oracle GoldenGate Veridataは、異機種間データ比較および修復ツールであり、ソース・データベースとターゲット・データベースが異なる場合にデータ型を標準化することで互換性を確保します。
データの取得には、主キー(PK)列値を直接フェッチする(実際の値がフェッチされる)一方で、非キー列はハッシュ化されて比較のためのネットワーク転送が最小限に抑えられます。この独自のハッシュ処理では、ソース・データベースとターゲット・データベースの行の類似性または差異を判断する信頼できる効率的な方法を提供することで、比較処理が合理化されます。
また、デフォルトのハッシュ・オプションを変更することもできます。ただし、この調整により、特に列数が多い場合、パフォーマンスが低下し、ネットワーク使用量が増加する可能性があります。初期比較の完了後、Oracle GoldenGate Veridataが一部の行で不一致を検出した場合、比較結果をユーザーに表示できなくなります。かわりに、これらの行をメモリー内のMOOS (Maybe Out of Sync)キューに格納します。この予防策が必要であるのは、同時リアルタイム・レプリケーションでは、レプリケーションのレイテンシがあることがあり、非同期行が転送中になる可能性があるためです。その後、レプリケーションによって再度同期されます。
図1-3 MOOS (Maybe Out-Of-Sync)の初期ステップまたは行ハッシュ・ステップ

Employee表には、主キー列EMP_ID
が含まれています。
- Oracle GoldenGate Veridataは、
EMP_ID
の実際の値を取得し、他の非キー列の値をハッシュします。 - レプリケーション・プロセスは進行中です。差異がある場合、たとえば、同期されていない行が10行ある場合、Oracle GoldenGate Veridataはそれらを非同期としてすぐに確認しません。
- リアルタイム・レプリケーション設定および同時データ・レプリケーションの場合、これらの10件の非同期行がターゲットにまだレプリケートされていない可能性があります。これはレイテンシが原因である可能性があります。
- 非同期行は、メモリー内のMOOSキューに格納されます。
1.4.2 非同期確認
- 各行を比較して正確な結果を保証します
- 構成されたレイテンシのしきい値で行ハッシュと並行して実行されます。
- 非同期確認要求をバッチ処理できます
- リモート・データベースではよいパフォーマンスです
- プロファイル設定によって制御されます
- パラレルで参照が実行されます
検証プロセス(確認または非同期確認(COOS)とも呼ばれます)では、動的設定で行のステータスを検証することで、正確な結果が保証されます。このプロセスでは、MOOSキューから取得した行を使用してソースまたはターゲットに対する条件付き照会を行い、ステータスが次の可能性のいずれかとして評価されます:
- 処理中: この行は、比較処理中に最初に同期されませんでしたが、現在は修正されています。このシナリオでは、レプリケーションまたは同様のメカニズムによって変更が実装されていると想定されますが、Oracle GoldenGate Veridataでは行の同期を検証できませんでした。
- 同期: ソース行の値が、レプリケーションまたは同様の処理を介してターゲット行に転送されました。ステータスが「同期」と表示されている場合でも、特に基礎となる表が常に変更されている場合、特定の時点で行が同期されることは保証されません。ただし、レプリケーションが正しく機能していることを示します。
- 永続的に非同期: 最初の比較ステップの実行後、行が変更されておらず、非同期である可能性があります。
デフォルトでは、確認処理は初期比較ステップと同時に実行されますが、各行の確認は指定したレプリケーション・レイテンシのしきい値を超えるまで遅延されます。たとえば、レイテンシが60秒に設定され、最初の比較ステップで10:00に非同期行が識別された場合、その行の確認ステップは10:01まで遅延され、レプリケーションで保留中の変更が適用されるようになります。レイテンシが考慮されると、行は最終的に「非同期」としてマークされ、1つ以上の非同期レポートに追加されます。
例: ソース・データベースとターゲット・データベースの両方のEmployee表のデータの比較。
レイテンシのしきい値を超えると、プロセスはCOOSステップと呼ばれる2番目のステージに移行します。ここでは、ハッシュを使用せずに、同期されていない行のみが調査されます。主キー列と非キー列の両方のすべての値は、元の形式(実際の値)で取得されます。非同期の行が値ごとに比較されます。このステージの後に同じデータの不整合が続く場合、これらの行は非同期と確認されます。次に、さらに処理するために非同期の行の詳細が表示されます。
図1-4 非同期確認(COOS)

ノート:
このコンテキストでは、レイテンシのしきい値が重要です。前述のシナリオでは、60秒で設定されましたが、手動で調整できます。このしきい値は、プロファイル構成内の「非同期確認の遅延間隔」パラメータで制御されます。ユーザーは、レプリケーション環境および日常的に発生するレイテンシについてよりよく理解できます。このため、このパラメータは要件に応じてカスタマイズできます。非同期確認の遅延間隔(秒)
レプリケーション遅延を考慮して指定した秒数だけ確認ステップを遅らせます。確認ステップを遅らせると、更新済みソース値のレプリケーションが間に合わなかったために発生する非同期結果のFalse数が減ります。
ノート:
2ステップの比較プロセス、特にCOOSと呼ばれる2番目のステップをスキップして、完全にバイパスするオプションがあります。プロファイル構成のパラメータ「非同期確認ステップの実行」では、Oracle GoldenGate Veridataのデータを比較するときに、2番目のステップを実行するかバイパスするかをユーザーが決定できます。
非同期確認ステップの実行
確認ステップを実行するかどうかを制御します。デフォルトでは、実行されます。「値」の下のチェック・ボックスをクリアして、確認ステップをスキップし、初回(行ハッシュ)比較のみを実行します。ソース表のアクティビティが停止、またはレプリケーションでターゲット表を連続して更新できないなど場合は、確認ステップをスキップできます。