キャッシュ・グループは、キャッシュ・グループまたは標準のTimesTen表にレプリケートできます。キャッシュ・グループをレプリケートする場合は、そのキャッシュ・グループ内のすべての表をレプリケートする必要があります。キャッシュ・グループ内のすべての表をレプリケートせずに、一部の表のみをレプリケートすることはできません。
注意: | 高可用性を実現するためにキャッシュ・グループのレプリケーションを実行する場合は、アクティブ・スタンバイ・ペアのレプリケーション構成を使用することをお薦めします。アクティブ・スタンバイ・ペアのレプリケーションを使用すると、障害が発生した場合にリカバリを迅速に実行できます。詳細は、「キャッシュ・グループが構成されたアクティブ・スタンバイ・ペア」を参照してください。 |
キャッシュ・グループは、次のいずれかの方法でレプリケートできます。
例は、「キャッシュ・グループ・レプリケーション・スキーム」を参照してください。
この項では、標準レプリケーションを使用したキャッシュ・グループのレプリケートについて、次の項目を説明します。
レプリケーション・スキームに特定のキャッシュ・グループを含める方法の詳細は、「レプリケーション・スキームの定義」の「データ・ストア要素の定義」を参照してください。
キャッシュ・グループが含まれているデータ・ストアで障害が発生した場合のリカバリ方法については、「障害が発生したデータ・ストアのリカバリ」を参照してください。
アクティブ・スタンバイ・ペアのレプリケーションを使用してレプリケーション・キャッシュ・グループを設定、管理およびリカバリする方法の詳細は、「アクティブ・スタンバイ・ペアの管理」を参照してください。キャッシュ・グループのレプリケートには、可能なかぎりアクティブ・スタンバイ・ペアのレプリケーションを使用する必要があります。データ・ストアの初期設定および障害発生時のリカバリを簡略化するためです。
キャッシュ・グループを複製するには、-duplicate
オプションを指定してttRepAdminユーティリティを使用し、キャッシュ・グループが含まれているデータ・ストアを複製します。-duplicate
オプションには、-keepCG
および-noKeepCG
の2つオプションがあります。-keepCG
オプションを使用すると、キャッシュ・グループの複製時にキャッシュ・グループの定義が保持されます。-noKeepCG
オプションを使用すると、キャッシュ・グループの定義は保持されません。この場合、複製時にキャッシュ・グループ表が標準のTimesTen表に変換されます。どちらのオプションも、キャッシュ・グループを含むアクティブ・スタンバイ・ペアのレプリケーション構成をローリング・アウトする際に有効です。
ttRepAdmin -duplicate -keepCG
は、キャッシュ・グループ間のレプリケーションの設定、またキャッシュ・グループが含まれているマスター・データ・ストアで障害が発生した場合に適用されるフェイルオーバーで使用します。
ttRepAdmin -duplicate -noKeepCG
は、ロード・バランシングのためにキャッシュ・グループと標準のTimesTen表間のレプリケーションを設定する場合に使用します。
次の項では、ttRepAdmin -duplicate
の-keepCG
および-noKeepCG
オプションの使用例を示します。
この使用例では、自動リフレッシュREADONLYキャッシュ・グループ、およびキャッシュ・グループに属していないTimesTen表がマスター・データ・ストアに含まれています。-keepCG
オプションを使用すると、自動リフレッシュ読取り専用キャッシュ・グループの定義を保持したサブスクライバ・データ・ストアを作成できます。
このキャッシュ・グループは、Oracleから直接的に自動リフレッシュするように設定できます。マスター・データ・ストア上のキャッシュ・グループではOracleから更新を直接受信しますが、サブスクライバ上のキャッシュ・グループではAUTOREFRESH STATEが自動的にPAUSEDに設定され、更新をマスターから受信するようになります。マスター・データ・ストアで障害が発生すると、サブスクライバ上のAUTOREFRESH STATEをONに設定して、マスター・データ・ストアとして使用することができます(この場合、データは失われません)。その後、元のマスターを新しいマスターから複製するか、またはレプリケーション・スキームがRETURN TWOSAFEで構成されている場合は、マスター・キャッチアップ・プロセスで両方のマスターを自動的に再同期させて、元のマスターをリカバリすることもできます。
マスター・データ・ストアとサブスクライバ・データ・ストア間の双方向レプリケーション・スキームには、キャッシュ・グループに属していないTimesTen表も含める必要があります。
図3.4を参照してください。
AUTOREFRESHが設定された同一のREADONLYキャッシュ・グループが含まれている双方向レプリケーションのデータ・ストアのペアを設定するには、次の手順を実行します。
-cacheStart
コマンドを使用して、マスター・データ・ストアのキャッシュ・エージェントを起動します。-repStart
コマンドを使用して、マスター・データ・ストアのレプリケーション・エージェントを起動します。-keepCG
オプションを指定してttRepAdmin -duplicate
コマンドを使用し、サブスクライバ・データ・ストアを作成します。-keepCG
オプションを使用すると、サブスクライバ・データ・ストア用の自動リフレッシュ・オブジェクトがOracleデータベースに設定されます。キャッシュ・グループは自動リフレッシュであるため、キャッシュ管理ユーザーIDおよびパスワードを入力する必要があります。サブスクライバ・データ・ストアのAUTOREFRESH STATEは、自動的にPAUSEDに設定されます。マスター・データ・ストアの障害からリカバリするには、次の手順を実行します。
-cacheStop
コマンドを使用して停止します。-repStop
コマンドを使用して停止します。-duplicate -keepCG
コマンドを使用して、現在のマスター・データ・ストアから、障害が発生したマスター・データ・ストアを複製します(2つのデータ・ストアを設定する方法については、前述の手順7を参照してください)。注意: | 読取り専用のAUTOREFRESHキャッシュ・グループを使用したアクティブ・スタンバイ・ペアのローリング・アウト時に-keepCG オプションを使用する方法については、「アクティブ・スタンバイ・ペアの設定」を参照してください。 |
この使用例では、マスター・データ・ストアにASYNCHRONOUS WRITETHROUGHキャッシュ・グループまたはSYNCHRONOUS WRITETHROUGHキャッシュ・グループが含まれています。-keepCG
オプションを使用すると、WRITETHROUGHキャッシュ・グループの定義を保持したサブスクライバ・データ・ストアを作成できます。図3.5を参照してください。
同じWRITETHROUGHキャッシュ・グループが含まれている双方向ホット・スタンバイ・データ・ストアのペアを設定するには、次の手順を実行します。
-keepCG
オプションを指定してttRepAdmin -duplicate
を使用し、サブスクライバ・データ・ストアを作成します。-keepCG
オプションを使用すると、サブスクライバ・データ・ストア用のASYNCHRONOUS WRITETHROUGH(AWT)オブジェクトがOracleデータベースに設定されます。キャッシュ・グループがAUTOREFRESHまたはAWTの場合は、キャッシュ管理ユーザーIDおよびパスワードを入力する必要があります。キャッシュ・グループがASYNCHRONOUS WRITETHROUGHの場合は、マスター・データ・ストアで障害が発生した後、サブスクライバ・データ・ストアとOracleデータベースが異なるレプリケーション状態になることがあります。アプリケーションで、トランザクションの一部を再実行して、それらを同じ状態にすることが必要になる場合があります。
マスター・データ・ストア障害からリカバリするには、マスター・データ・ストアで手順5および6を実行します。
注意: | データ・ストアには、AUTOREFRESHキャッシュ・グループとWRITETHROUGHキャッシュ・グループの両方を含めることができます。この項で説明した手順は、WRITETHROUGHキャッシュ・グループ間のレプリケーションを設定するものであり、AUTOREFRESHキャッシュ・グループ間のレプリケーションを設定するものではありません。詳細は、「AUTOREFRESHが設定された双方向ホット・スタンバイREADONLYキャッシュ・グループ: -keepCGオプション」を参照してください。 |
注意: | ASYNCHRONOUS WRITETHROUGHキャッシュ・グループを使用したアクティブ・スタンバイ・ペアのローリング・アウト時に-keepCG オプションを使用する方法については、「アクティブ・スタンバイ・ペアの設定」を参照してください。 |
この使用例では、Oracleデータベースからの変更を受信するAUTOREFRESHキャッシュ・グループがマスター・データ・ストアに含まれています。マスター・データ・ストアは、読取り専用アクセス用のサブスクライバ・データ・ストアにレプリケートされます。サブスクライバ・データ・ストアには、キャッシュ・グループに属していないTimesTen表が含まれます。自動リフレッシュは、マスター・データ・ストアでのみ実行されます。サブスクライバ・データ・ストアはOracleデータベースと通信しないため、Oracleクライアントをインストールする必要はありません。図3.6を参照してください。
ロード・バランシングAUTOREFRESHキャッシュ・グループに対するレプリケーションを設定するには、次の手順を実行します。
キャッシュ・グループ間にレプリケーションを設定するもう1つの方法として、CREATE CACHE GROUP文で両方のキャッシュ・グループを作成してから、レプリケーション・スキームを設定する方法があります。両方のキャッシュ・グループで同じグループ・タイプを指定する必要があります。たとえば、READONLYキャッシュ・グループは、別のREADONLYキャッシュ・グループにのみレプリケートできます。また、CREATE CACHE GROUP文で指定するキャッシュ・グループ属性も同じである必要があります。ただし、AUTOREFRESH、READONLY、AGINGおよびPROPAGATE属性は例外です(「キャッシュ・グループ間の単方向レプリケーション」および「キャッシュ・グループ間の双方向レプリケーション」を参照)。
CREATE CACHE GROUP文を使用して、単方向にレプリケートされるキャッシュ・グループをデータ・ストアごとに独立して作成する場合は、一部のキャッシュ・グループ属性の構成に制限があります。
キャッシュ・グループをレプリケートする単方向レプリケーション・スキームの例は、「キャッシュ・グループ・レプリケーション・スキーム」を参照してください。
キャッシュ・グループがREADONLYの場合、キャッシュ・グループのロード時にAUTOREFRESHが自動的にONに設定されるため、サブスクライバ・キャッシュ・グループのAUTOREFRESH STATEは、CREATE CACHE GROUP文で明示的にOFFまたはPAUSEDに設定する必要があります。
キャッシュ・グループがUSERMANAGED(デフォルト)で、マスター・データ・ストアのAUTOREFRESH STATEがONに設定されている場合、サブスクライバ・キャッシュ・グループのAUTOREFRESH STATEはOFFに設定し、サブスクライバ・キャッシュ・グループ内のすべての表はREADONLYとして構成する必要があります。
キャッシュ・グループがUSERMANAGEDで、サブスクライバ・キャッシュ・グループがPROPAGATEで構成されている場合、マスターとサブスクライバの両方のキャッシュ・グループを自動リフレッシュすることはできません。キャッシュ・グループにAUTOREFRESHは構成しないでください。AUTOREFRESHを構成した場合は、両方のAUTOREFRESH STATEをOFFに設定する必要があります。
時間ベースのエージングが構成されている場合は、LIFETIMEの設定をマスター・キャッシュ・グループとサブスクライバ・キャッシュ・グループで同じにする必要があります。また、AGINGは、1つのキャッシュ・グループでONに設定されている場合、両方のキャッシュ・グループでONに設定する必要があります。
WHERE句は、マスター・キャッシュ・グループとサブスクライバ・キャッシュ・グループの両方で同じである必要があります。
キャッシュ・グループを双方向レプリケーション・スキームでレプリケートする場合、READONLYキャッシュ・グループでは、両方のキャッシュ・グループに対してAUTOREFRESHを指定できます。WRITETHROUGHキャッシュ・グループでは、いずれかのキャッシュ・グループに対してのみAUTOREFRESHを指定できます。USERMANAGEDキャッシュ・グループではAUTOREFRESHを使用できません。
詳細は次のとおりです。
注意: | レプリケーション・エージェントは、ALTER CACHE GROUPによって行われた変更を認識しません。ALTER CACHE GROUPを使用してAUTOREFRESH STATEを再設定した場合は、レプリケーション・エージェントを再起動する必要があります。 |