Helix Coreサーバ管理者ガイド (2020.1)

フェイルオーバー後のフェイルバック

フェイルオーバーが正常に完了すると、フェイルオーバーの前はスタンバイサーバだったサーバが、新しいマスターサーバまたはコミットサーバとして稼働します。 ここで、「フェイルバック」を実行することができます。フェイルバックとは、フェイルオーバーの前はマスターサーバまたはコミットサーバだったサーバを元の状態に戻すことを指します。 通常、テスト目的でフェイルオーバーを実行した場合は、その後でフェイルバックを行います。 障害回復やメンテナンスの目的でフェイルオーバーを実行した場合も、その後でフェイルバックを行うことをお勧めします。

前提条件

  1. 正常なフェイルオーバーの前提条件に記載されている手順を実行します。
  2. フェイルオーバーの前はマスターサーバまたはコミットサーバとして稼働していたサーバを開始する前に(このサーバはスタンバイサーバになります)、そのサーバのServerIDの値を、現在のマスターサーバのServerIDとは異なる値に設定します。

元のマスターサーバを再作成する

通常は、フェイルバック手順を実行する前に、新しいマスターサーバから元のマスターサーバを作成することをベストプラクティスとしてお勧めします。 ここでは、以下のケースについて考えてみます。

元のマスターサーバがフェイルオーバーに参加した場合 元のマスターサーバがフェイルオーバーに参加しなかった場合
... 元のマスターサーバのメタデータに、フェイルオーバー発生時に元のスタンバイサーバに送信されなかったトランザクションが含まれている可能性があります。 こうしたトランザクションは、フェイルバック時に繰り返し発生する場合があります。 これを避けるため、フェイルバック手順を実行する前に、新しいマスターサーバから元のマスターサーバを作成してください。 ... マスターサーバの再作成が必要ない場合があります。 ただし、メタデータの整合性に疑問がある場合は、フェイルバック手順を実行する前に、新しいマスターサーバから元のマスターサーバを作成してください。これが最も安全な方法です。

フェイルバック手順

新しいコミットサーバで実行する手順

  1. 新しいコミットサーバでp4 servers -Jコマンドを実行し、スタンバイサーバの状態を確認します。
  2. コマンドの実行結果を確認します。以下のような結果が表示されます。

    commit '2019/07/09 16:41:36' commit-server 40/13642 40/13642 wadL/1 1

    standby '2019/07/09 16:41:31' standby 40/10000 40/10000 wAdl/4 1

    スタンバイサーバでは「10000」が表示され、コミットサーバではそれよりも大きな「13642」が表示されていますが、これは、スタンバイサーバが完全にはコミットサーバと同じ状態になっていないということを示しています。

  3. 少し待ってからp4 servers -Jコマンドをもう一度実行し、スタンバイサーバの状態が完全にコミットサーバと同じになったかどうかを確認します。 例えば、以下のように表示されれば、スタンバイサーバの準備が完全に整ったことになります。

    commit '2019/07/09 16:41:36' commit-server 40/13642 40/13642 wadL/1 1

    standby '2019/07/09 16:41:36' standby 40/13642 40/13642 wAdl/4 1

新しいスタンバイサーバ(元のコミットサーバ)で実行する手順

  1. フェイルオーバーコマンドp4 failover -yを実行します。
  2. フェイルオーバーに記載されている手順を実行します。