フェイルオーバーマネージャーの概要

EDB Postgres Failover Manager(EFM)クラスターは、ネットワーク上の次のホストに存在するFailover Managerプロセスで構成されます。

  • マスターノード-マスターノードは、データベースクライアントにサービスを提供するプライマリデータベースサーバーです。

  • 1つ以上のスタンバイノード-スタンバイノードは、マスターノードに関連付けられたストリーミングレプリケーションサーバーです。

  • 監視ノード-監視ノードは、フェールオーバーシナリオでマスターまたはスタンバイのアサーションを確認します。クラスターに3つ以上のノードが含まれる場合、クラスターには専用の監視ノードは必要ありません。データベースホストである3番目のクラスターメンバーがない場合は、専用の監視ノードを使用できます。クラスターには複数の監視ノードが含まれる場合があります。

従来、*クラスタ*は、複数のデータベースを管理するPostgresの単一インスタンスです。このドキュメントでは、クラスターという用語はフェールオーバーマネージャークラスターを指します。フェールオーバーマネージャークラスターは、クラウドまたは従来のネットワーク上のサーバーに存在し、JGroupsツールキットを使用して通信するマスターエージェント、1つ以上のスタンバイエージェント、およびオプションの監視エージェントで構成されます。

EFM scenario

仮想IPアドレスを使用するEFMシナリオ

非監視エージェントが起動すると、ローカルデータベースに接続し、データベースの状態を確認します。

  • エージェントがデータベースに到達できない場合、エージェントはアイドルモードで起動します。

  • データベースが回復中であることがわかると、エージェントはスタンバイの役割を引き受けます。

  • データベースが回復中でない場合、エージェントはマスターの役割を引き受けます。

フェールオーバーが発生した場合、フェールオーバーマネージャーは、昇格したスタンバイがクラスター内で最新のスタンバイであることを確認しようとします。スタンバイノードがマスターノードと同期していない場合、データが失われる可能性があることに注意してください。

JGroups は、フェールオーバーマネージャーが、メンバーノードが相互に通信してノード障害を検出できるクラスターを作成できるようにする技術を提供します。

上記の図は、仮想IPアドレスを使用するFailover Managerクラスターを示しています。 仮想IPアドレスの代わりにロードバランサーを使用できます 独自の フェンシングスクリプトを提供する場合 障害が発生した場合にロードバランサーを再構成します。