ヘッダーをスキップ
Oracle TimesTen Replication - TimesTen to TimesTen開発者および管理者ガイド
リリース7.0
E05169-03
  目次へ
目次
索引へ
索引

前へ
前へ
次へ
次へ
 

アクティブ・マスター・データ・ストアの障害からのリカバリ

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

スタンバイ・マスター・データ・ストアが使用可能な場合のリカバリ

この項では、スタンバイ・マスター・データ・ストアが使用可能で、アクティブ・マスター・データ・ストアと同期されている場合にアクティブ・マスター・データ・ストアをリカバリする方法について説明します。内容は次のとおりです。

レプリケーションがRETURN RECEIPTまたは非同期の場合

次のタスクを実行します。

  1. 障害が発生したデータ・ストアで、アプリケーション・エージェントがまだ停止されていない場合は停止します。
  2. スタンバイ・マスター・データ・ストアで、ttRepStateSet('ACTIVE')を実行します。これによって、データ・ストアのロールがSTANDBYからACTIVEに変更されます。AUTOREFRESHキャッシュ・グループをレプリケートしている場合にこの手順を実行すると、データ・ストアのAUTOREFRESH STATEがPAUSEDからONに自動的に変更されます。
  3. 新しいアクティブ・マスター・データ・ストアで、ttRepStateSave('FAILED', 'failed_store', 'host_name')を実行します。ここで、failed_storeは、障害が発生する前のアクティブ・マスター・データ・ストアです。この手順は、新しいアクティブ・マスター・データ・ストアがサブスクライバ・データ・ストアに直接レプリケートされるようにするために必要です。
  4. AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている場合は、障害が発生したデータ・ストアのキャッシュ・エージェントを停止します(停止していない場合)。
  5. 障害が発生したデータ・ストアを破棄します。
  6. 新しいアクティブ・マスター・データ・ストアを新しいスタンバイ・マスター・データ・ストアに複製します。データ・ストアを複製するには、ttRepAdmin -duplicateユーティリティまたはttRepDuplicateEx C関数のいずれかを使用できます。AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている場合は、キャッシュ・グループを保持するために、ttRepAdmin-keepCG -recoveringNodeコマンドライン・オプションを使用する必要があります。
  7. 新しいスタンバイ・マスター・データ・ストアでレプリケーション・エージェント・ポリシーを設定し、レプリケーション・エージェントを起動します。詳細は、「レプリケーション・エージェントの起動および停止」を参照してください。
  8. AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている場合は、新しいスタンバイ・マスター・データ・ストアのキャッシュ・エージェントを起動します。
  9. スタンバイ・マスター・データ・ストアは、アクティブ・マスター・データ・ストアに通信します。アクティブ・マスター・データ・ストアは、サブスクライバへの更新の送信を停止します。スタンバイ・マスター・データ・ストアがアクティブ・マスター・データ・ストアと完全に同期している場合、スタンバイ・マスター・データ・ストアはSTANDBY状態になり、サブスクライバへの更新の送信を開始します。AWTキャッシュ・グループをレプリケートしている場合、新しいスタンバイ・マスター・データ・ストアは、STANDBY状態になると自動的にキャッシュ・グループの処理を引き継ぎます。


    注意: スタンバイ・マスター・データ・ストアがSTANDBY状態になったことは、ttRepStateGetプロシージャを使用して確認できます。

レプリケーションがRETURN TWOSAFEの場合

次のタスクを実行します。

  1. スタンバイ・マスター・データ・ストアで、ttRepStateSet('ACTIVE')を実行します。これによって、データ・ストアのロールがSTANDBYからACTIVEに変更されます。AUTOREFRESHキャッシュ・グループをレプリケートしている場合にこの手順を実行すると、データ・ストアのAUTOREFRESH STATEがPAUSEDからONに自動的に変更されます。
  2. 新しいアクティブ・マスター・データ・ストアで、ttRepStateSave('FAILED', 'failed_store', 'host_name')を実行します。ここで、failed_storeは、障害が発生する前のアクティブ・マスター・データ・ストアです。この手順は、新しいアクティブ・マスター・データ・ストアがサブスクライバ・データ・ストアに直接レプリケートされるようにするために必要です。
  3. 障害が発生したデータ・ストアに接続します。これによって、ローカル・トランザクション・ログからのリカバリがトリガーされます。データ・ストアのリカバリが正常に行われなかったときは、レプリケーションがRETURN RECEIPTまたは非同期の場合のリカバリ方法の手順5から処理を続けてください。詳細は、「レプリケーションがRETURN RECEIPTまたは非同期の場合」を参照してください。AUTOREFRESHキャッシュ・グループをレプリケートしている場合は、AUTOREFRESH STATEがPAUSEDに自動的に設定されます。
  4. 障害が発生したデータ・ストアのレプリケーション・エージェントが再起動されたことを確認します。再起動されていない場合は起動します。詳細は、「レプリケーション・エージェントの起動および停止」を参照してください。
  5. AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている場合は、障害が発生したデータ・ストアのキャッシュ・エージェントが再起動されたことを確認します。再起動されていない場合は起動します。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のキャッシュ・エージェントの起動と停止に関する説明を参照してください。
  6. スタンバイ・マスター・データ・ストアと完全に同期されているとアクティブ・マスター・データ・ストアで判断された場合、スタンバイ・マスター・データ・ストアはSTANDBY状態になり、サブスクライバへの更新の送信を開始します。AWTキャッシュ・グループをレプリケートしている場合、新しいスタンバイ・マスター・データ・ストアは、STANDBY状態になると自動的にキャッシュ・グループの処理を引き継ぎます。


    注意: スタンバイ・マスター・データ・ストアがSTANDBY状態になったことは、ttRepStateGetプロシージャを使用して確認できます。

スタンバイ・マスター・データ・ストアが使用可能でない場合のリカバリ

次の例を考えてみます。

両方の例で、スタンバイ・マスター・データ・ストアの場合より多くの変更がサブスクライバに適用されている可能性があります。

アクティブ・マスター・データ・ストアで障害が発生し、アクティブ・マスター・データ・ストアから最後に送信された変更の一部のみがスタンバイ・マスター・データ・ストアで適用された場合、リカバリの方法として次の2つの方法があります。

いずれのデータ・ストアが使用可能かまたはいずれのデータ・ストアがより新しいかに応じて、使用する方法を選択します。

アクティブ・マスター・データ・ストアのリカバリ

  1. 障害が発生したアクティブ・データ・ストアに接続します。これによって、ローカル・トランザクション・ログからのリカバリがトリガーされます。AUTOREFRESHキャッシュ・グループをレプリケートしている場合は、AUTOREFRESH STATEがPAUSEDに自動的に設定されます。
  2. 障害が発生したアクティブ・データ・ストアのレプリケーション・エージェントが再起動されたことを確認します。再起動されていない場合は起動します。詳細は、「レプリケーション・エージェントの起動および停止」を参照してください。
  3. 新しくリカバリされたストアで、ttRepSyncSet('ACTIVE')を実行します。AUTOREFRESHキャッシュ・グループをレプリケートしている場合にこの手順を実行すると、データ・ストアのAUTOREFRESH STATEがPAUSEDからONに自動的に変更されます。
  4. AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている場合は、障害が発生したデータ・ストアのキャッシュ・エージェントが再起動されたことを確認します。再起動されていない場合は起動します。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のキャッシュ・エージェントの起動と停止に関する説明を参照してください。

スタンバイ・マスター・データ・ストアのリカバリ

  1. 障害が発生したスタンバイ・データ・ストアに接続します。これによって、ローカル・トランザクション・ログからのリカバリがトリガーされます。AUTOREFRESHキャッシュ・グループをレプリケートしている場合は、AUTOREFRESH STATEがPAUSEDに自動的に設定されます。
  2. スタンバイ・データ・ストアのレプリケーション・エージェントが自動的に再起動された場合は、そのレプリケーション・エージェントを停止する必要があります。詳細は、「レプリケーション・エージェントの起動および停止」を参照してください。
  3. AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている際にキャッシュ・エージェントが自動的に再起動された場合は、キャッシュ・エージェントを停止する必要があります。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のキャッシュ・エージェントの起動と停止に関する説明を参照してください。
  4. DROP ACTIVE STANDBY PAIR文を使用して、レプリケーション構成を削除します。
  5. AWTキャッシュ・グループをレプリケートしている場合は、DROP CACHE GROUPおよびCREATE CACHE GROUP文を使用して、すべてのAWTキャッシュ・グループを削除および再作成します。
  6. CREATE ACTIVE STANDBY PAIR文を使用して、レプリケーション構成を再作成します。
  7. レプリケーション・エージェント・ポリシーを設定し、レプリケーション・エージェントを起動します。詳細は、「レプリケーション・エージェントの起動および停止」を参照してください。
  8. マスター・データ・ストアで、ttRepStateSet('ACTIVE')を実行して、そのデータ・ストアにACTIVEロールを割り当てます。AUTOREFRESHキャッシュ・グループをレプリケートしている場合にこの手順を実行すると、データ・ストアのAUTOREFRESH STATEがPAUSEDからONに自動的に変更されます。
  9. AUTOREFRESHまたはAWTキャッシュ・グループをレプリケートしている場合は、キャッシュ・エージェントを起動します。詳細は、『Oracle TimesTen Cache Connect to Oracle開発者および管理者ガイド』のキャッシュ・エージェントの起動と停止に関する説明を参照してください。

元のノードへのフェイルバック

フェイルオーバーに成功した後、アクティブ・マスター・データ・ストアおよびスタンバイ・マスター・データ・ストアが元のノードに存在するようにフェイルバックする必要がある場合があります。詳細は、「アクティブ・マスター・データ・ストアとスタンバイ・マスター・データ・ストアの役割の入替え」を参照してください。