アクティブ・データベースの障害からのリカバリ
アクティブ・データベースの障害からリカバリするために実行できるいくつかの手順を示します。
この項の内容は次のとおりです。
スタンバイ・データベースが使用可能な場合のリカバリ
スタンバイ・データベースが使用可能でありアクティブ・データベースと同期されている場合に、アクティブ・データベースをリカバリするために実行できる手順を示します。
レプリケーションがRETURN RECEIPTまたは非同期の場合
レプリケーションでRETURN RECEIPTまたは非同期レプリケーションが使用されている場合に、アクティブ・データベースで障害が発生した後にリカバリするために実行できる、いくつかのタスクを示します。
次のタスクを実行します。
- 障害が発生したデータベースで、レプリケーション・エージェントがまだ停止されていない場合は停止します。
- スタンバイ・データベースで
ttRepStateSet
('ACTIVE')
をコールします。これによって、データベースの役割がSTANDBY
からACTIVE
に変更されます。 - 新しいアクティブ・データベースで、
ttRepStateSave
('FAILED', '
failed_database
','
host_name
')
をコールします(ここで、failed_database
は、障害が発生する前のアクティブ・データベースです)。このステップは、新しいアクティブ・データベースがサブスクライバ・データベースに直接レプリケートされるようにするために必要です。通常動作時は、スタンバイ・データベースのみがサブスクライバにレプリケートされます。 - 障害が発生したデータベースを破棄します。
- 新しいアクティブ・データベースを新しいスタンバイ・データベースに複製します。
- レプリケーション・エージェント・ポリシーを設定し、新しいスタンバイ・データベースでレプリケーション・エージェントを起動します。「レプリケーション・エージェントの起動および停止」を参照してください。
スタンバイ・データベースは、アクティブ・データベースに通信します。アクティブ・データベースは、サブスクライバへの更新の送信を停止します。スタンバイ・データベースがアクティブ・データベースと完全に同期している場合、スタンバイ・データベースはSTANDBY
状態になり、サブスクライバへの更新の送信を開始します。
ノート:
スタンバイ・データベースがSTANDBY
状態になったことは、ttRepStateGet
組込みプロシージャを使用して確認できます。
レプリケーションがRETURN TWOSAFEの場合
レプリケーションでRETURN TWOSAFEが使用されている場合にアクティブ・データベースをリカバリするときに実行する、いくつかの手順を示します。
次のタスクを実行します。
- スタンバイ・データベースで
ttRepStateSet
('ACTIVE')
をコールします。これによって、データベースの役割がSTANDBY
からACTIVE
に変更されます。 - 新しいアクティブ・データベースで、
ttRepStateSave
('FAILED', '
failed_database
','
host_name
')
をコールします(ここで、failed_database
は、障害が発生する前のアクティブ・データベースです)。このステップは、新しいアクティブ・データベースがサブスクライバ・データベースに直接レプリケートされるようにするために必要です。通常動作時は、スタンバイ・データベースのみがサブスクライバにレプリケートされます。 - 障害が発生したデータベースに接続します。これによって、ローカル・トランザクション・ログからのリカバリがトリガーされます。データベースのリカバリが正常に行われなかったときは、レプリケーションがRETURN RECEIPTまたは非同期の場合のリカバリ方法のステップ5から処理を続けてください。詳細は、「レプリケーションがRETURN RECEIPTまたは非同期の場合」を参照してください。
- 障害が発生したデータベースのレプリケーション・エージェントが再起動されたことを確認します。再起動されていない場合は起動します。「レプリケーション・エージェントの起動および停止」を参照してください。
スタンバイ・データベースと完全に同期されているとアクティブ・データベースで判断された場合、スタンバイ・データベースはSTANDBY
状態になり、サブスクライバへの更新の送信を開始します。
ノート:
スタンバイ・データベースがSTANDBY
状態になったことは、ttRepStateGet
組込みプロシージャを使用して確認できます。
元のノードへのフェイルバック
フェイルオーバーに成功した後、アクティブ・データベースおよびスタンバイ・データベースが元のノードに存在するようにフェイルバックする必要がある場合があります。
「アクティブ・データベースとスタンバイ・データベースの役割の入替え」を参照してください。