フェイルオーバーマネージャーの概要¶
EDB Postgres Failover Manager(EFM)クラスターは、ネットワーク上の次のホストに存在するFailover Managerプロセスで構成されます。
マスターノード-マスターノードは、データベースクライアントにサービスを提供するプライマリデータベースサーバーです。
1つ以上のスタンバイノード-スタンバイノードは、マスターノードに関連付けられたストリーミングレプリケーションサーバーです。
監視ノード-監視ノードは、フェールオーバーシナリオでマスターまたはスタンバイのアサーションを確認します。クラスターに3つ以上のノードが含まれる場合、クラスターには専用の監視ノードは必要ありません。データベースホストである3番目のクラスターメンバーがない場合は、専用の監視ノードを追加できます。
従来、*クラスタ*は、複数のデータベースを管理するPostgresの単一インスタンスです。このドキュメントでは、クラスターという用語はフェールオーバーマネージャークラスターを指します。フェールオーバーマネージャークラスターは、クラウドまたは従来のネットワーク上のサーバーに存在し、JGroupsツールキットを使用して通信するマスターエージェント、1つ以上のスタンバイエージェント、およびオプションの監視エージェントで構成されます。
仮想IPアドレスを使用するEFMシナリオ¶
非監視エージェントが起動すると、ローカルデータベースに接続し、データベースの状態を確認します。
エージェントがデータベースに到達できない場合、エージェントはアイドルモードで起動します。
データベースが回復中であることがわかると、エージェントはスタンバイの役割を引き受けます。
データベースが回復中でない場合、エージェントはマスターの役割を引き受けます。
フェールオーバーが発生した場合、フェールオーバーマネージャーは、昇格したスタンバイがクラスター内で最新のスタンバイであることを確認しようとします。スタンバイノードがマスターノードと同期していない場合、データが失われる可能性があることに注意してください。
JGroups は、フェールオーバーマネージャーが、メンバーノードが相互に通信してノード障害を検出できるクラスターを作成できるようにする技術を提供します。
上記の図は、仮想IPアドレスを使用するFailover Managerクラスターを示しています。 仮想IPアドレスの代わりにロードバランサーを使用できます 独自の フェンシングスクリプトを提供する場合 障害が発生した場合にロードバランサーを再構成します。