Prerequisites¶
|Failover Managerを構成する前にクラスタの場合、以下で説明する前提条件を満たす必要があります。
Install Java 1.8 (or later)
|Failover Managerを使用する前に、最初にJava(バージョン1.8以降)をインストールする必要があります。|Failover ManagerOpenJDKでテストされています。そのバージョンのJavaをインストールすることを強くお勧めします。`Java<https://openjdk.java.net/install/>`__のインストール手順はプラットフォーム固有です。
Provide an SMTP Server
|Failover Managerから通知を受け取ることができますユーザー定義の通知スクリプト、電子メール、またはその両方で指定されたとおり。
電子メール通知を使用している場合、SMTPサーバーはFailover Managerの各ノードで実行されている必要がありますシナリオ。
script.notificationプロパティに値を指定する場合、user.emailフィールドを空白のままにできます。SMTPサーバーは必要ありません。
イベントが発生した場合、|Failover Managerスクリプト(提供されている場合)を呼び出し、クラスタープロパティファイルのuser.emailパラメーターで指定された任意の電子メールアドレスに通知電子メールを送信することもできます。SMTPサーバーの使用の詳細については、次のWebサイトをご覧ください。
Configure Streaming Replication
|Failover ManagerPostgreSQLストリーミングレプリケーションをプライマリノードとスタンバイノード間で構成する必要があります。|Failover Manager他のタイプのレプリケーションはサポートしていません。
データベースバージョン11(またはそれ以前)では、 -sourcenode オプションで指定されない限り、スイッチオーバー中に recovery.conf ファイルがランダムスタンバイノードから停止したプライマリにコピーされます。スイッチオーバーを実行する前に、スタンバイノードの recovery.conf ファイル内のパスが一貫していることを確認する必要があります。 -sourcenode オプションの詳細については、 フェールオーバーマネージャーノードの昇格 を参照してください。
データベースバージョン12以降では、スイッチオーバー中に primary_conninfo および restore_command プロパティがランダムスタンバイノードから停止したプライマリにコピーされます( -sourcenode オプションで指定されていない限り)。
Modify the pg_hba.conf File
プライマリノードとスタンバイノードの pg_hba.conf ファイルを変更して、クラスター内のすべてのノード間の通信を許可するエントリを追加する必要があります。次の例は、プライマリノード上のpg_hba.confファイルに作成される可能性のあるエントリを示しています。
# access for itself
host fmdb efm 127.0.0.1/32 md5
# access for standby
host fmdb efm 192.168.27.1/32 md5
# access for witness
host fmdb efm 192.168.27.34/32 md5
場所:
efmは、有効なデータベースユーザーの名前を指定します。
fmdbは、efmユーザーが接続できるデータベースの名前を指定します。
デフォルトでは、 pg_hba.conf ファイルはPostgresインストールの下の data ディレクトリにあります。 pg_hba.conf ファイルを変更した後、変更を有効にするには、各ノードで構成ファイルをリロードする必要があります。次のコマンドを使用できます。
# systemctl reload edb-as-x
x はPostgresバージョンを指定します。
Using Autostart for the Database Servers
プライマリノードが再起動する場合、|Failover Managerデータベースがプライマリノードでダウンしていることを検出し、スタンバイノードをプライマリの役割に昇格させる場合があります。この場合、|Failover Manager(リブートされた)プライマリノード上のエージェントは、 recovery.conf ファイルを書き込む機会を得られません。 recovery.conf ファイルは、データベースサーバーの起動を妨げます。これが発生した場合、再起動されたプライマリノードは2番目のプライマリノードとしてクラスタに戻ります。
これを防ぐには、|Failover Managerエージェントは、データベースサーバーの前に自動起動します。エージェントはアイドルモードで起動し、クラスターに既にプライマリがあるかどうかを確認します。プライマリノードがある場合、エージェントは recovery.conf または standby.signal ファイルが存在することを確認し、データベースは2番目のプライマリとして起動しません。
Ensure Communication Through Firewalls
Linuxファイアウォール(つまり、iptables)がフェールオーバーマネージャーノードのホストで有効になっている場合、|Failover Manager間のTCP通信を許可するルールをファイアウォール構成に追加する必要があります。クラスター内のプロセス。例:
# iptables -I INPUT -p tcp --dport 7800 -j ACCEPT
/sbin/service iptables save
上記のコマンドは、ポート7800を開きます。|Failover Managerクラスタプロパティファイルで指定されたポートに対応するポートを介して接続します。
Ensure that the Database user has Sufficient Privileges
efm.properties ファイルの db.user プロパティで指定されたデータベースユーザーは、|Failover Managerに代わって次の機能を呼び出すのに十分な権限を持っている必要があります。
pg_current_wal_lsn()
pg_last_wal_replay_lsn()
pg_wal_replay_resume()
pg_wal_replay_pause()
pg_reload_conf()
pg_reload_conf() 特権は、 reconfigure.num.sync または reconfigure.sync.primary プロパティが true に設定されている場合にのみ必要です。
これらの各関数の詳細については、`PostgreSQLコアドキュメント<https://www.postgresql.org/docs/current/index.html>`_を参照してください。
ユーザーには、構成変数の値を読み取る権限も必要です。データベースのスーパーユーザーは、PostgreSQLの GRANT コマンドを使用して、必要な権限を提供できます。
GRANT pg_read_all_settings TO user_name;
pg_read_all_settings の詳細については、「PostgreSQLコアドキュメント<https://www.postgresql.org/docs/current/default-roles.html>`_」を参照してください。