キャッシュ・グループとレプリケーション
キャッシュ・グループは、中央のOracleデータベースに格納される表のグループであり、TimesTenのローカル・キャッシュ表にキャッシュされます。キャッシュ・グループは、TimesTenデータベース間でレプリケートできます。アクティブ・スタンバイ・ペアを使用してAWTまたは読取り専用キャッシュ・グループをレプリケートすることで、高可用性を実現できます。
この項では、キャッシュ・グループをレプリケートする次の方法について説明します。
「キャッシュ・グループがあるアクティブ・スタンバイ・ペアの管理」を参照してください。
AWTキャッシュ・グループのレプリケート
ASYNCHRONOUS WRITETHROUGH(AWT)キャッシュ・グループを、オプションの読取り専用サブスクライバを持つアクティブ・スタンバイ・ペアの一部として構成すると、高可用性を実現し、アプリケーションのワークロードを分散できます。
図1-12にこの構成を示します。
アプリケーションによる更新は、アクティブ・データベースに対して行われ、スタンバイ・データベースにレプリケートされてから、そのスタンバイによってOracle Databaseに非同期で書き込まれます。同時に、これらの更新は、スタンバイから読取り専用サブスクライバにレプリケートされ、読取り専用サブスクライバによって、読取りアプリケーションのロードが分散されます。読取り専用サブスクライバにある表は、キャッシュ・グループにはありません。
スタンバイ・データベースが存在しない場合、アクティブ・データベースによって、アプリケーションによる更新の受入れおよびOracle Databaseと読取り専用サブスクライバへの非同期での更新の書込みの両方が実行されます。このような状況は、スタンバイが作成されていない場合、またはアクティブで障害が発生し、スタンバイが新しいアクティブになった場合に発生します。TimesTen Classicでは、スタンバイが新しいアクティブになった場合、AWTキャッシュ・グループが再構成されます。
アクティブ・データベースのあるノードで障害が発生した場合、スタンバイ・マスターが新しいアクティブ・マスターになります。TimesTen Classicは自動的にAWTキャッシュ・グループを再構成します。これにより、AWTキャッシュ・グループをアプリケーションから直接更新して、引き続きOracle Databaseに非同期で更新を伝播できます。
「AWTキャッシュ・グループが構成されたアクティブ・スタンバイ・ペアの設定」を参照してください。
Oracle Databaseに伝播するサブスクライバでのAWTキャッシュ・グループのレプリケート
アクティブ・スタンバイ・ペアのレプリケーション構成の一部として、障害時リカバリ用の特別な読取り専用サブスクライバをリモート・サイトに作成することによって、サイトの完全な障害からリカバリできます。
図1-13にこの構成を示します。
スタンバイ・データベースは、読取り専用サブスクライバのキャッシュ・グループ表に更新を送信します。この特別なサブスクライバはリモートの障害時リカバリ・サイトに配置されており、(同様に障害時リカバリ・サイトに配置されている)2番目のOracle Databaseに更新を伝播できます。読取り専用サブスクライバおよびOracle Databaseを持つ障害時リカバリ・サイトを2つ以上設定できます。「アクティブ・スタンバイ・ペアでの障害時リカバリ・サブスクライバの使用」を参照してください。
読取り専用キャッシュ・グループのレプリケート
読取り専用キャッシュ・グループのキャッシュ動作では、Oracleデータベースの表に対するコミットされた更新が、TimesTen上の対応するキャッシュ表に自動的に反映されます。
図1-14に、アクティブ・スタンバイ・ペアによってレプリケートされた読取り専用キャッシュ・グループを示します。
読取り専用キャッシュ・グループがアクティブ・スタンバイ・ペアによってレプリケートされると、アクティブ・データベースのキャッシュ・グループがOracle Databaseから自動リフレッシュされ、更新がスタンバイにレプリケートされます(スタンバイのキャッシュ・グループにもAUTOREFRESH
が構成されていますが、状態はPAUSED
になっています)。アクティブに障害が発生すると、TimesTen Classicは、AUTOREFRESH STATE
をON
に設定することにより、スタンバイを再構成して障害が発生したマスター・データベースの役割を引き継ぐ際に自動リフレッシュされるようにします。また、TimesTen Classicは、Oracle Databaseからアクティブ・データベースに自動リフレッシュされた更新がスタンバイにレプリケートされたかどうかを追跡します。これにより、アクティブで障害が発生した場合でも、自動リフレッシュ・プロセスを適切な時点から継続できるようになり、自動リフレッシュされた更新が失われることがなくなります。この構成には、読取り専用サブスクライバ・データベースを含めることもできます。これによって、読取りワークロードを多数のデータベースにわたり分散できます。スタンバイ・データベースのキャッシュ・グループは、サブスクライバの通常の(キャッシュされていない)表にレプリケートします。「読取り専用キャッシュ・グループが構成されたアクティブ・スタンバイ・ペアの設定」を参照してください。