Wed October 24, 2018
repmgr 4.2 is a major release, with the main new feature being the ability to pause repmgrd, e.g. during planned maintenance operations. Various other usability enhancements and a couple of bug fixes are also included; see notes below for details.
A restart of the PostgreSQL server is required for this release. For detailed upgrade instructions, see Upgrading a major version release.
Important: On Debian-based systems, including Ubuntu, if using repmgrd please ensure that the in the file /etc/init.d/repmgrd, the parameter REPMGRD_OPTS contains "--daemonize=false", e.g.:# additional options REPMGRD_OPTS="--daemonize=false"
For further details, see repmgrd daemon configuration on Debian/Ubuntu.
New parameter shutdown_check_timeout (default: 60 seconds) added; this provides an explicit timeout for repmgr standby switchover to check that the demotion candidate (current primary) has shut down. Previously, the parameters reconnect_attempts and reconnect_interval were used to calculate a timeout, but these are actually intended for primary failure detection. (GitHub #504).
New parameter repmgr_bindir added, to facilitate remote invocation of repmgr when the repmgr binary is located somewhere other than the PostgreSQL binary directory, as it cannot be assumed all package maintainers will install repmgr there.
This parameter is optional; if not set (the default), repmgr will fall back to pg_bindir (if set).
repmgr cluster cleanup now accepts the --node-id option to delete records for only one node. (GitHub #493).
Note: Users relying on repmgr cluster crosscheck to return a non-zero return code as a way of detecting connectivity errors should be aware that ERR_BAD_SSH will be returned if there is an SSH connection error from the node where the command is executed, even if the command is able to establish that PostgreSQL connectivity is fine. Therefore the exact return code should be checked to determine what kind of connectivity error has been detected.
repmgrd can now be "paused", i.e. instructed not to take any action such as a failover, even if the prerequisites for such an action are detected.
This removes the need to stop repmgrd on all nodes when performing a planned operation such as a switchover.
For further details, see Pausing repmgrd.