2.2 PrerequisitesBefore using Failover Manager, you must first install Java (version 1.8 or later). Failover Manager is tested with OpenJDK, and we strongly recommend installing that version of Java. Installation instructions for Java are platform specific; for more information, visit:You can receive notifications from Failover Manager as specified by a user-defined notification script, by email, or both.
• If you provide a value in the script.notification property, you can leave the user.email field blank; an SMTP server is not required.If an event occurs, Failover Manager invokes the script (if provided), and sends a notification email to any email addresses specified in the user.email parameter of the cluster properties file. For more information about using an SMTP server, visit:Failover Manager requires that PostgreSQL streaming replication be configured between the Master node and the Standby node or nodes. Failover Manager does not support other types of replication.Unless specified with the -sourcenode option, a recovery.conf file is copied from a random standby node to the stopped master during switchover. You should ensure that the paths within the recovery.conf files on your standby nodes are consistent before performing a switchover. For more information about the -sourcenode option, please see Section 4.1.4.Please note that Failover Manager does not support automatic reconfiguration of the standby databases after a failover if you use replication slots to manage your WAL segments. If you use replication slots, you should set the auto.reconfigure parameter to false, and manually reconfigure the standby servers in the event of a failover.You must modify the pg_hba.conf file on the Master and Standby nodes, adding entries that allow communication between the all of the nodes in the cluster. The following example demonstrates entries that might be made to the pg_hba.conf file on the Master node:# 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 md5efm specifies the name of a valid database user.fmdb specifies the name of a database to which the efm user may connect.By default, the pg_hba.conf file resides in the data directory, under your Postgres installation. After modifying the pg_hba.conf file, you must reload the configuration file on each node for the changes to take effect. You can use the following command:Where x specifies the Postgres version.If a Master node reboots, Failover Manager may detect the database is down on the Master node and promote a Standby node to the role of Master. If this happens, the Failover Manager agent on the (rebooted) Master node will not get a chance to write the recovery.conf file; the rebooted Master node will return to the cluster as a second Master node.To prevent this, start the Failover Manager agent before starting the database server. The agent will start in idle mode, and check to see if there is already a master in the cluster. If there is a master node, the agent will verify that a recovery.conf file exists, and the database will not start as a second master.If a Linux firewall (i.e. iptables) is enabled on the host of a Failover Manager node, you may need to add rules to the firewall configuration that allow tcp communication between the Failover Manager processes in the cluster. For example:The command shown above opens a small range of ports (7800 through 7810). Failover Manager will connect via the port that corresponds to the port specified in the cluster properties file.The database user specified in the efm.properties file must have sufficient privileges to invoke the following functions on behalf of Failover Manager:For detailed information about each of these functions, please see the PostgreSQL core documentation, available at: