Upgrading an Existing Cluster

|variable_prod_name| provides a utility to assist you when upgrading a |variable_prod_name| cluster. To upgrade an existing cluster, you must:

  1. Install |variable_prod_name| |variable_prod_version| on each node of the cluster. For detailed information about installing |variable_prod_name|, see Installing Failover Manager.

  2. After installing |variable_prod_name|, invoke the efm upgrade-conf utility to create the .properties and .nodes files for Failover Manager |variable_prod_version|. The |variable_prod_name| installer installs the upgrade utility (efm upgrade-conf) to the /usr/edb/efm-3.10/bin directory. To invoke the utility, assume root privileges, and invoke the command:

    efm upgrade-conf <cluster_name>

    The efm upgrade-conf utility locates the .properties and .nodes files of pre-existing clusters and copies the parameter values to a new configuration file for use by |variable_prod_name|. The utility saves the updated copy of the configuration files in the /etc/edb/efm-3.10 directory.

  3. Modify the .properties and .nodes files for EFM |variable_prod_version|, specifying any new preferences.

    Use your choice of editor to modify any additional properties in the properties file (located in the /etc/edb/efm-3.10 directory) before starting the service for that node. For detailed information about property settings, see The Cluster Properties File .

Note

As of version 3.6, db.bin is a required property. When modifying the properties file, ensure that the db.bin property specifies the location of the Postgres bin directory.

  1. Use a version-specific command to stop the old |variable_prod_name| cluster; for example, you can use the following command to stop a version 3.9 cluster:

    /usr/efm-3.9/bin/efm stop-cluster efm

  2. Start the new Failover manager service (edb-efm-3.10) on each node of the cluster.

The following example demonstrates invoking the upgrade utility to create the .properties and .nodes files for a |variable_prod_name| installation:

# /usr/edb/efm-3.10/bin/efm upgrade-conf efm
Checking directory /etc/edb/efm-3.9
Processing efm.properties file

The following properties were added in addition to those in previous installed version:
     external.address
     update.physical.slots.period

Checking directory /etc/edb/efm-3.9
Processing efm.nodes file

Upgrade of files is finished. The owner and group for properties and nodes files have been set as 'efm'.

If you are using a Failover Manager configuration without sudo, include the -source flag and specify the name of the directory in which the configuration files reside when invoking upgrade-conf. If the directory is not the configuration default directory, the upgraded files will be created in the directory from which the upgrade-conf command was invoked.

Please note: : If you are using a custom service script or unit file, you must manually update the file to reflect the new |variable_prod_name| service name when you perform an upgrade.

Un-installing Failover Manager

After upgrading to |variable_prod_name| |variable_prod_version|, you can use yum to remove previous installations of |variable_prod_name|. For example, use the following command to remove |variable_prod_name| 3.9 and any unneeded dependencies:

  • On RHEL or CentOS 6.x or 7.x:

    yum remove edb-efm39

  • On RHEL or CentOS 8.x:

    dnf remove edb-efm39

  • On Debian or Ubuntu:

    apt-get remove edb-efm39

  • On SLES:

    zypper remove edb-efm39

Performing a Database Update (Minor Version)

This section describes how to perform a quick minor database version upgrade. You can use the steps that follow to upgrade from one minor version to another (for example, from 10.1.5 to version 10.2.7), or to apply a patch release for a version.

You should first update the database server on each Standby node of the |variable_prod_name| cluster. Then, perform a switchover, promoting a Standby node to the role of Master within the |variable_prod_name| cluster. Then, perform a database update on the old master node.

On each node of the cluster you must perform the following steps to update the database server:

  1. Stop the |variable_prod_name| agent.

  2. Stop the database server.

  3. Update the database server.

  4. Start the database service.

  5. Start the |variable_prod_name| agent.

For detailed information about controlling the Advanced Server service, or upgrading your version of Advanced Server, please see the EDB Postgres Advanced Server Guide, available at:

When your updates are complete, you can use the efm set-priority command to add the old master to the front of the standby list, and then switchover to return the cluster to its original state.