スタンバイ・データベースの障害からのリカバリ

スタンバイ・データベースの障害からリカバリするには、次のタスクを実行します。

  1. RETURN TWOSAFEサービスが有効になっている場合にスタンバイ・データベースで障害が発生すると、処理中のトランザクションはアクティブ・データベースでコミットされなくなり、エラー8170「Receipt or commit acknowledgement not returned in the specified timeout interval」が発生します。その場合は、localActionパラメータを2 (COMMIT)に設定してttRepSyncSet組込みプロシージャをコールし、トランザクションを再度コミットします。たとえば:

    Command> call ttRepSyncSet( null, null, 2);
    Command> commit;
  2. アクティブ・データベースで、ttRepStateSave('FAILED','standby_database','host_name')をコールします。このとき、スタンバイ・データベースが使用できない間は、アクティブ・データベースへの更新は、サブスクライバ・データベースに直接レプリケートされます。追加のサブスクライバ・データベースは、アクティブから直接複製することもできます。

  3. 次のいずれかの方法で、スタンバイ・データベースをリカバリします。

    1. スタンバイ・データベースに接続します。これによって、ローカル・トランザクション・ログからのリカバリがトリガーされます。スタンバイ・データベースがリカバリされたら、ステップ4に進みますが、それ以外の場合はステップ3bを続けます。

    2. ttDestroyユーティリティを使用してスタンバイ・データベースの現行バージョンを破棄します。

    3. アクティブ・データベースから新しいスタンバイ・データベースを複製します。ttRepAdmin -duplicateユーティリティまたはttRepDuplicateEx C関数を使用して、データベースを複製できます。-keepCG -recoveringNodeオプションをttRepAdminとともに使用して、スタンバイ・マスターの障害からキャッシュ・グループをリカバリし、保存します。「データベースの複製」を参照してください。

  4. レプリケーション・エージェント・ポリシーを設定し、スタンバイ・データベースでレプリケーション・エージェントを起動します。「レプリケーション・エージェントの起動および停止」を参照してください。

  5. スタンバイ・データベースでキャッシュ・エージェントを起動します。

アクティブ・データベースで2つのマスター・データベースが同期していると判断し、サブスクライバへの更新の送信を停止すると、スタンバイ・データベースはSTANDBY状態になり、サブスクライバへの更新の送信を開始します。

ノート:

スタンバイ・データベースがSTANDBY状態になったことは、ttRepStateGet組込みプロシージャを使用して確認できます。