ページの先頭行へ戻る
Enterprise Postgres 15 クラスタ運用ガイド(データベース多重化編)

付録D ハートビート異常で即時に自動縮退を行うを選択した場合の注意事項

OSやサーバの生死監視おいてハートビート異常で無条件に自動縮退を行う選択を行った場合、異常監視に関するチューニングが適切に行われていない場合には、以下のような事象が発生します。

OSやサーバのダウンおよび無応答による監視についての注意事項

OSやサーバのダウンおよび無応答は上記の通りタイムアウトによる監視を行っています。そのため、チューニングが正しく行われていないと、サーバが健全な状態にもかかわらず誤ってスプリットブレインを発生させる危険性があります。

スプリットブレインとは、一時的に両サーバがプライマリサーバとして動作してしまうために、両サーバでデータの更新業務が行われる現象をいいます。

スプリットブレインの検出方法

以下の条件の場合にスプリットブレインが発生していることが確認できます。

  1. 両サーバでmc_ctlコマンドをstatusモードで実行した結果、両サーバの“host_role”が“primary”と出力される。かつ、

  2. いずれかのサーバのシステムログに、以下のメッセージが出力されている。

    プライマリサーバへの昇格処理が完了しました (MCA00062)
スプリットブレインからの復旧方法

以下の手順で行います。なお、新プライマリサーバは上記の検出方法の2)で確認されたサーバとなります。

  1. 旧プライマリサーバおよび新プライマリサーバで動作しているすべてのアプリケーションを停止します。

  2. データベースの調査と復旧を行います。
    新プライマリサーバに反映されていない更新結果を旧プライマリサーバのデータベースから調査して、必要に応じて新プライマリサーバに適用します。

  3. 旧プライマリサーバのインスタンスおよびMirroring Controllerを停止します。

  4. 手順1.で停止したアプリケーションを再開します。

  5. 旧プライマリサーバを復旧します。
    2.5 スタンバイサーバのセットアップ”を参照して、新プライマリサーバから旧プライマリサーバを新スタンバイサーバとして構築(セットアップ)します。