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

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

  • マスターノード-マスターノードは、データベースクライアントにサービスを提供するプライマリデータベースサーバーです。
  • 1つ以上のスタンバイノード-スタンバイノードは、マスターノードに関連付けられたストリーミングレプリケーションサーバーです。
  • 監視ノード-監視ノードは、フェールオーバーシナリオでマスターまたはスタンバイのアサーションを確認します。クラスターに3つ以上のノードが含まれる場合、クラスターには専用の監視ノードは必要ありません。データベースホストである3番目のクラスターメンバーがない場合は、専用の監視ノードを追加できます。

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

EFMシナリオ

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

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

  • エージェントがデータベースに到達できない場合、エージェントはアイドルモードで起動します。
  • データベースが回復中であることがわかると、エージェントはスタンバイの役割を引き継ぎます。
  • データベースが回復中でない場合、エージェントはマスターの役割を引き受けます。

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

JGroupsは、Failover Managerが、メンバーノードが相互に通信してノード障害を検出できるクラスターを作成できるテクノロジーを提供します。

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