ヘッダーをスキップ

Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド リリース6.0 B25769-01 |
| 目次 | 索引

前へ | 次へ |

## キャッシュ・グループのレプリケート

キャッシュ・グループは、キャッシュ・グループまたは標準のTimesTen表にレプリケートできます。まず、キャッシュ・グループ、次にレプリケーション・スキームを設定します。

注意: 自動リフレッシュ・キャッシュ・グループ間にレプリケーションは設定しないでください。自動リフレッシュ・キャッシュ・グループは、Oracleから更新を直接受信します。

キャッシュ・グループは、次のいずれかの方法でレプリケートできます。

- キャッシュ・グループ内の各表をレプリケートする
- キャッシュ・グループが含まれているデータ・ストアをレプリケートする

例は、「キャッシュ・グループ・レプリケーション・スキーム」を参照してください。

この項の内容は次のとおりです。

- ttRepAdminによるキャッシュ・グループのレプリケーションの設定
- CREATE CACHE GROUPによるキャッシュ・グループのレプリケーションの設定
- キャッシュ・グループ間の単方向レプリケーション
- キャッシュ・グループ間の双方向レプリケーション

レプリケーション・スキームに特定のキャッシュ・グループを含める方法の詳細は、「レプリケーション・スキームの定義」の「データ・ストア要素の定義」を参照してください。

キャッシュ・グループが含まれているデータ・ストアで障害が発生した場合のリカバリ方法については、「障害が発生したデータ・ストアのリカバリ」を参照してください。

## ttRepAdminによるキャッシュ・グループのレプリケーションの設定

キャッシュ・グループを複製するには、-duplicateオプションを指定してttRepAdminユーティリティを使用し、キャッシュ・グループが含まれているデータ・ストアを複製します。-duplicateオプションには、-keepCGおよび-noKeepCGの2つオプションがあります。-keepCGオプションを使用すると、キャッシュ・グループの複製時にキャッシュ・グループの定義が保持されます。-noKeepCGオプションを使用すると、キャッシュ・グループの定義は保持されません。この場合、複製時にキャッシュ・グループ表が標準のTimesTen表に変換されます。

ttRepAdmin -duplicate -keepCGは、キャッシュ・グループ間のレプリケーションの設定、またキャッシュ・グループが含まれているマスター・データ・ストアで障害が発生した場合に適用されるフェイルオーバーで使用します。

ttRepAdmin -duplicate -noKeepCGは、ロード・バランシングのためにキャッシュ・グループと標準のTimesTen表間のレプリケーションを設定する場合に使用します。

次の項では、ttRepAdmin -duplicateの-keepCGおよび-noKeepCGオプションの使用例を示します。

- 双方向ホット・スタンバイ自動リフレッシュ・キャッシュ・グループ: -keepCGオプション
- 双方向ホット・スタンバイWRITETHROUGHキャッシュ・グループ: -keepCGオプション
- ロード・バランシング自動リフレッシュ・キャッシュ・グループ: -noKeepCGオプション

### 双方向ホット・スタンバイ自動リフレッシュ・キャッシュ・グループ: -keepCGオプション

この使用例では、マスター・データ・ストアに自動リフレッシュ・キャッシュ・グループ、およびキャッシュ・グループに属していないTimesTen表が含まれています。-keepCGオプションを使用すると、自動リフレッシュ・キャッシュ・グループの定義を保持したサブスクライバ・データ・ストアを作成できます。

キャッシュ・グループは、Oracleから直接自動リフレッシュされるように設定する必要があります。これによって、データの可用性が保証されます。キャッシュ・グループに属していないTimesTen表は、マスター・データ・ストアとサブスクライバ・データ・ストア間のレプリケーション・スキームに含める必要があります。

図3.4を参照してください。

図3.4 双方向ホット・スタンバイ自動リフレッシュ・キャッシュ・グループ

同じ自動リフレッシュ・キャッシュ・グループが含まれている双方向ホット・スタンバイ・データ・ストアのペアを設定するには、次の手順を実行します。

1. マスター・データ・ストアを作成します。
2. マスター・データ・ストアのキャッシュ・エージェントを起動します。
3. マスター・データ・ストア、およびサブスクライバ・データ・ストアが作成されるノードに自動リフレッシュ・キャッシュ・グループを作成します。
4. レプリケーション･スキームを作成します。
5. マスター・データ・ストアのレプリケーション・エージェントを起動します。
6. -keepCGオプションを指定してttRepAdmin -duplicateを使用し、サブスクライバ・データ・ストアを作成します。-keepCGオプションを使用すると、サブスクライバ・データ・ストア用の自動リフレッシュ・オブジェクトがOracleデータベースに設定されます。キャッシュ・グループは自動リフレッシュであるため、キャッシュ管理ユーザーIDおよびパスワードを入力する必要があります。
7. サブスクライバ・データ・ストアのレプリケーション・エージェントを起動します。
8. サブスクライバ・データ・ストアのキャッシュ・エージェントを起動します。

マスター・データ・ストア障害からリカバリするには、マスター・データ・ストアでステップ6から8までを実行します。

### 双方向ホット・スタンバイWRITETHROUGHキャッシュ・グループ: -keepCGオプション

この使用例では、マスター・データ・ストアにASYNCHRONOUS WRITETHROUGHキャッシュ・グループまたはSYNCHRONOUS WRITETHROUGHキャッシュ・グループが含まれています。-keepCGオプションを使用すると、WRITETHROUGHキャッシュ・グループの定義を保持したサブスクライバ・データ・ストアを作成できます。図3.5を参照してください。

図3.5 双方向ホット・スタンバイWRITETHROUGHキャッシュ・グループ

同じWRITETHROUGHキャッシュ・グループが含まれている双方向ホット・スタンバイ・データ・ストアのペアを設定するには、次の手順を実行します。

1. マスター・データ・ストアを作成します。
2. WRITETHROUGHキャッシュ・グループがASYNCHRONOUSである場合は、キャッシュ管理ユーザーIDおよびパスワードを登録します。
3. マスター・データ・ストア、およびサブスクライバ・データ・ストアが作成されるノードにWRITETHROUGHキャッシュ・グループを作成します。
4. マスター・データ・ストアのレプリケーション・エージェントを起動します。
5. 北eepCGオプションを指定してttRepAdmin -duplicateを使用し、サブスクライバ・データ・ストアを作成します。-keepCGオプションを使用すると、サブスクライバ・データ・ストア用のAWTオブジェクトがOracleデータベースに設定されます。キャッシュ・グループが自動リフレッシュまたはAWTの場合は、キャッシュ管理ユーザーIDおよびパスワードを入力する必要があります。
6. サブスクライバ・データ・ストアのレプリケーション・エージェントを起動します。

WRITETHROUGHキャッシュ・グループがASYNCHRONOUSの場合は、マスター・データ・ストアで障害が発生した後、サブスクライバ・データ・ストアとOracleデータベースが異なるレプリケーション状態になることがあります。アプリケーションで、トランザクションの一部を再実行して、それらを同じ状態にする必要がある場合があります。

マスター・データ・ストア障害からリカバリするには、マスター・データ・ストアでステップ5および6を実行します。

注意: データ・ストアには、複数の自動リフレッシュ・キャッシュ・グループおよびWRITETHROUGHキャッシュ・グループを含めることができます。この項で説明した手順は、WRITETHROUGHキャッシュ・グループ間のレプリケーションを設定するもので、自動リフレッシュ・キャッシュ・グループ間のレプリケーションを設定するものではありません。「双方向ホット・スタンバイ自動リフレッシュ・キャッシュ・グループ: -keepCGオプション」を参照してください。

### ロード・バランシング自動リフレッシュ・キャッシュ・グループ: -noKeepCGオプション

この使用例では、マスター・データ・ストアにOracleデータベースからの変更を受信する自動リフレッシュ・キャッシュ・グループが含まれています。マスター・データ・ストアは、読取り専用アクセス用のサブスクライバ・データ・ストアにレプリケートされます。サブスクライバ・データ・ストアには、キャッシュ・グループに属していないTimesTen表が含まれます。自動リフレッシュは、マスター・データ・ストアでのみ実行されます。サブスクライバ・データ・ストアはOracleデータベースと通信しないため、Oracleクライアントがインストールされていない場合があります。図3.6を参照してください。

図3.6 ロード・バランシング自動リフレッシュ・キャッシュ・グループ

ロード・バランシング自動リフレッシュ・キャッシュ・グループに対するレプリケーションを設定するには、次の手順を実行します。

1. マスター・データ・ストアを作成します。
2. マスター・データ・ストアのキャッシュ・エージェントを起動します。
3. マスター・データ・ストアで自動リフレッシュ・キャッシュ・グループを作成します。
4. レプリケーション･スキームを作成します。
5. マスター・データ・ストアのレプリケーション・エージェントを起動します。
6. -noKeepCGオプションを指定してttRepAdmin -duplicateを使用し、サブスクライバ・データ・ストアを作成します。
7. サブスクライバ・データ・ストアのレプリケーション・エージェントを起動します。

## CREATE CACHE GROUPによるキャッシュ・グループのレプリケーションの設定

キャッシュ・グループ間にレプリケーションを設定するもう1つの方法として、CREATE CACHE GROUP文で両方のキャッシュ・グループを作成してから、レプリケーション・スキームを設定する方法があります。両方のキャッシュ・グループで同じグループ・タイプを指定する必要があります。たとえば、READONLYキャッシュ・グループは、別のREADONLYキャッシュ・グループにのみレプリケートできます。また、CREATE CACHE GROUP文で指定するキャッシュ・グループ属性も同じである必要があります。ただし、AUTOREFRESH、READONLYおよびPROPAGATE属性は例外です（「キャッシュ・グループ間の単方向レプリケーション」および「キャッシュ・グループ間の双方向レプリケーション」を参照）。

## キャッシュ・グループ間の単方向レプリケーション

キャッシュ・グループを単方向レプリケーション・スキームでレプリケートする場合は、マスター・データ・ストアのキャッシュ・グループのみでAUTOREFRESHを指定できます。サブスクライバ・データ・ストアのキャッシュ・グループではAUTOREFRESHを無効にする必要があります。

表3.1に、レプリケーション・データ・ストアで指定可能なキャッシュ・グループ設定の概要を示します。

##### 表3.1 キャッシュ・グループ間の単方向レプリケーション

マスター・キャッシュ・グループの設定 | サブスクライバ・キャッシュ・グループの設定 | 制限
--- | --- | ---
読取り専用キャッシュ・グループ | 読取り専用キャッシュ・グループ | サブスクライバで、AUTOREFRESH STATE OFFを指定する必要があります。
WRITETHROUGHキャッシュ・グループ | WRITETHROUGHキャッシュ・グループ | 制限なし。
読取り専用表での自動リフレッシュ | 読取り専用表での自動リフレッシュ | サブスクライバで、AUTOREFRESH STATE OFFを指定する必要があります。
伝播される表を含む | 伝播される表を含む | 制限なし。
伝播されない表を含む | 制限なし。
エージング | エージング | 期間を同じにする必要があります。
双方向に伝播される表を含む | 双方向に伝播される表を含む | マスターおよびサブスクライバで、AUTOREFRESH STATE OFFを指定する必要があります。
伝播されない表を含む | 制限なし。
伝播されない表を含む | 伝播されない表を含む | 制限なし。
伝播される表を含む | 制限なし。

#####

注意: WHERE句は、マスター・キャッシュ・グループとサブスクライバ・キャッシュ・グループに対して同じである必要があります。

詳細は次のとおりです。

- READONLYキャッシュ・グループ: キャッシュ・グループがロードされるとAUTOREFRESHはONに設定されるため、サブスクライバ・データ・ストアのREADONLYキャッシュ・グループでは、CREATE CACHE GROUP文にAUTOREFRESH STATE OFFを指定して、AUTOREFRESHを明示的に無効にする必要があります。
- SYNCHRONOUS WRITETHROUGHキャッシュ・グループ: レプリケーションに関する問題はありません。
- ASYNCHRONOUS WRITETHROUGHキャッシュ・グループ: レプリケーションに関する問題はありません。
- USERMANAGEDキャッシュ・グループ

- マスター・キャッシュ・グループでAUTOREFRESH STATE ONを指定した場合は、サブスクライバ・キャッシュ・グループでAUTOREFRESH STATE OFFを指定し、サブスクライバ・キャッシュ・グループのすべての表をREADONLYとして指定する必要があります。
- マスター・キャッシュ・グループおよびサブスクライバ・キャッシュ・グループでAUTOREFRESHおよびPROPAGATEを指定した場合は、自動リフレッシュ状態をOFFにする必要があります。
- マスター・キャッシュ・グループでAUTOREFRESH STATE ONおよびPROPAGATEを指定した場合は、サブスクライバ・キャッシュ・グループでAUTOREFRESH STATE OFFを指定する必要があります。

キャッシュ・グループをレプリケートする単方向レプリケーション・スキームの例は、「キャッシュ・グループ・レプリケーション・スキーム」を参照してください。

## キャッシュ・グループ間の双方向レプリケーション

キャッシュ・グループを双方向レプリケーション・スキームでレプリケートする場合、キャッシュ・グループの1つのみでAUTOREFRESHを指定できます。

詳細は次のとおりです。

- READONLYキャッシュ・グループ: 両方のキャッシュ・グループで、AUTOREFRESH STATE OFFを指定する必要があります。
- SYNCHRONOUS WRITETHROUGHキャッシュ・グループ: レプリケーションに関する問題はありません。
- ASYNCHRONOUS WRITETHROUGHキャッシュ・グループ: レプリケーションに関する問題はありません。
- USERMANAGEDキャッシュ・グループ: 両方のキャッシュ・グループで、AUTOREFRESH STATE OFFを指定する必要があります。

注意: レプリケーション・エージェントは、ALTER CACHE GROUPによって行われた変更を認識しません。ALTER CACHE GROUPを使用してAUTOREFRESH STATEを再設定した場合は、レプリケーション・エージェントを再起動する必要があります。