アクティブ-アクティブ構成とアクティブ-パッシブ構成の比較
Oracle GoldenGateの一般的なユース・ケースは高可用性です。計画停止または計画外停止時に発生する停止時間を短縮するために使用されます。
このユース・ケースでOracle GoldenGateを実装する際は、アクティブ-アクティブまたはアクティブ-パッシブ(ライブ・スタンバイとも呼ばれる)のレプリケーションを構成できます。前者では、アプリケーションからの読取りおよび書込みトラフィック用として2つ以上のデータベースを構成します。後者では、アプリケーションに対する読取りおよび書込みトラフィックが一度に1つのデータベースにアクセスするようにする必要があります。これは、OracleのGoldおよびPlatinumの最大可用性アーキテクチャ・パターンとも密接に関連しています。
この方法でOracle GoldenGateを使用すると、ほぼすべての種類の停止でリカバリ時間目標をゼロに減らすことができます。
次のガイドラインを使用して、アプリケーションでどの方法を使用するかを決定してください。
どちらの方法も単方向トポロジと同じように構成し、ソースからターゲットへのレプリケーション・ストリームを構成します。ただし、ターゲットからソースへのレプリケーションも構成します。そのため、双方向レプリケーションに関与するすべてのExtractおよびReplicatについて、ループ検出を考慮することが必要になります。ループ検出の詳細は、「双方向ループ検出の有効化」を参照してください。また、アクティブ-パッシブまたはアクティブ-アクティブ・トポロジを構成するには、取得と配信の両方が動作保証されているデータベースを使用する必要があります。サポートされているオペレーティング・システムおよびデータベースの詳細は、「GoldenGateの動作保証」を参照してください。アクティブ-アクティブ高可用性の目的
-
計画外停止中、アクティブ-アクティブ環境ではユーザーは別のデータベースにすぐに接続できます。
-
計画停止では、ユーザーを事前に別のデータベースにゆっくりと移動(接続を段階的に減らす)してからサーバーをオフラインにできるため、優れたユーザー・エクスペリエンスを提供できます。
どちらの場合もリカバリ時間目標(RTO)はゼロです。もう一方のデータベースがすでにオープンしていて、読取りアクティビティと書込みアクティビティの両方に対応できるためです。
Oracle GoldenGateレプリケーションは非同期であるため、異なるデータベースで2つのトランザクションが同じ行を同時に変更する場合があります。これらの変更を他のサーバーにレプリケートしようとすると、競合が発生する可能性があります。これらの競合を解決するには、管理者がCOMPARECOLS
/ RESOLVECONFLICT
(CC/RC)オプションを使用してOracle GoldenGateを構成するか、Oracleデータベースでのみ使用可能な自動競合検出および解決(ACDR)機能を使用する必要があります。どちらの方法にも、スムーズな操作と最終的なデータの一貫性を確保するための要件と推奨事項があります。
Oracle GoldenGateは、データ・メッシュ、ハブおよびスポーク・モデルなど、複数のアクティブ-アクティブ・トポロジをサポートできます。
データ・メッシュ・モデルでは、すべてのデータベースが相互に接続されます。メッシュ・スタイルは、データベースの数が少ない(通常は4以下)場合に有効です。
GoldenGate Stream Analyticsは、データ・メッシュ・プラットフォームを実装しているため、データ・パイプラインを視覚的に構築し、リアルタイム・ウィンドウ(1ミリ秒以内)で移動しているデータに対してETLまたは高度な分析を継続的に実行できます。Stream Analyticsを使用すると、Oracle GoldenGateを使用して、すべてのデータベースからデータ・イベントを簡単に取り込むことができます。
詳細は、「ストリーム分析について」を参照してください。
ハブおよびスポーク・モデルでは、各読取り-書込みデータベースがスポークとなり、データをハブに送信します。これを受信したハブは他のすべてのスポークにデータを送信します。ハブおよびスポーク・モデルはデプロイメントの数が多いときに有効ですが、ハブで余分なホップが発生するため、レイテンシが高くなり、競合が増大する可能性があります。
Oracle GoldenGateでのアクティブ-アクティブ・レプリケーションの構成の詳細は、次のテクニカル・ペーパーhttps://www.oracle.com/a/ocom/docs/ogg-best-practices-active-active.pdfを参照してください。
アクティブ-パッシブ高可用性の目的
アクティブ-パッシブ環境では、双方向レプリケーションが構成されますが、アプリケーションは一度に1つのサーバーにのみ接続されます。停止が発生した場合、Oracle GoldenGate Replicatが最後のトランザクションを適用するまで、ユーザーは他のデータベースに接続できません。つまり、RTOはOracle GoldenGateのラグと等しくなります。Oracle GoldenGateの一般的なラグは約4-7秒であるため、RTO値は非常に低くなる可能性があり、書込みアクティビティが一度に1つのデータベースでしか発生しないため、データの競合を心配する必要もありません。アクティブ-パッシブには、アクティブ-アクティブ・アプリケーションに存在するアプリケーションおよびスキーマの制限がないため、SiebelやPeopleSoftなどのサード・パーティ・アプリケーションで使用できます。一般的なアクティブ-パッシブ実装は、アクティブ・データベースごとに1つのパッシブ・データベースです。
アプリケーションで数秒の停止時間(約4-6秒のRTO)を許容できる場合は、アクティブ-パッシブ・アーキテクチャを使用することをお薦めします。実装とメンテナンスが容易で、アプリケーションとテーブルの依存関係が少なく、パッケージ・アプリケーションで機能します。ただし、本当にゼロのRTOが必要な場合は、アクティブ-アクティブのアーキテクチャが必要です。