スタンバイ・データベースの障害からのリカバリ
スタンバイ・データベースの障害からリカバリするには、次のタスクを実行します。
-
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;
-
アクティブ・データベースで、
ttRepStateSave
('FAILED','
standby_database
','
host_name
')
をコールします。このとき、スタンバイ・データベースが使用できない間は、アクティブ・データベースへの更新は、サブスクライバ・データベースに直接レプリケートされます。追加のサブスクライバ・データベースは、アクティブから直接複製することもできます。 -
次のいずれかの方法で、スタンバイ・データベースをリカバリします。
-
スタンバイ・データベースに接続します。これによって、ローカル・トランザクション・ログからのリカバリがトリガーされます。スタンバイ・データベースがリカバリされたら、ステップ4に進みますが、それ以外の場合はステップ3bを続けます。
-
ttDestroy
ユーティリティを使用してスタンバイ・データベースの現行バージョンを破棄します。 -
アクティブ・データベースから新しいスタンバイ・データベースを複製します。
ttRepAdmin
-duplicate
ユーティリティまたはttRepDuplicateEx
C関数を使用して、データベースを複製できます。-keepCG -recoveringNode
オプションをttRepAdmin
とともに使用して、スタンバイ・マスターの障害からキャッシュ・グループをリカバリし、保存します。「データベースの複製」を参照してください。
-
-
レプリケーション・エージェント・ポリシーを設定し、スタンバイ・データベースでレプリケーション・エージェントを起動します。「レプリケーション・エージェントの起動および停止」を参照してください。
-
スタンバイ・データベースでキャッシュ・エージェントを起動します。
アクティブ・データベースで2つのマスター・データベースが同期していると判断し、サブスクライバへの更新の送信を停止すると、スタンバイ・データベースはSTANDBY
状態になり、サブスクライバへの更新の送信を開始します。
ノート:
スタンバイ・データベースがSTANDBY
状態になったことは、ttRepStateGet
組込みプロシージャを使用して確認できます。