github hapostgres/pg_auto_failover v1.4.0

latest releases: v2.1, v2.0, v1.6.4...
3 years ago

pg_auto_failover v1.4.0 (September 23, 2020)

The main focus of this release is the new capability of pg_auto_failover to
manage any number of standby nodes, where it used to manage only a single
secondary before. This comes with new documentation coverage and Postgres
production architectures support.

The main changes of this release are:

  • A Postgres group allows any number of Postgres nodes, any of them can be
    setup to participate in the replication quorum (it's then a sync
    standby) or not (it's then an async standby).

  • Any node can be setup with a candidate priority of zero, and then a
    failover will never pick this node as the new primary. Two nodes with
    non-zero candidate priority are expected in any group, and the monitor
    enforces that.

  • The --nodename option is removed, replaced by the new option --hostname.

    At upgrade time your configuration file is migrated to the new format
    automatically.

    Adding to that, it is now possible to give names to your nodes. This
    change breaks scripts that you may have: replace --nodename with
    --hostname, add --name if needed.

    It is also possible to edit a node's metadata at runtime or when
    starting a node. The command pg_autoctl run now supports options
    --name, --hostname, and --pgport. That's useful in environments
    where IP addresses must be used and can change at each reboot.

  • The pg_autoctl process is now the parent process of Postgres.

    As of pg_autoctl 1.4 Postgres is running only when pg_autoctl is
    running. This simplifies systemd integration and allows a better upgrade
    process. It also makes pg_autoctl easier to run in containers.

  • It is possible to pg_autoctl create postgres when PGDATA is an already
    existing data_directory: as usual the monitor decides if that node is
    going to be a primary or a standby. All the Postgres nodes in the same
    group must have the same Postgres system identifer, and that is now
    enforced on the monitor.

Added

  • Allow multiple standbys in a Postgres group [#326]
  • Allow adding a standby node from an exiting PGDATA directory [#276]
  • Edit the HBA file as soon as a new node is added to the group [#311]
  • Check for monitor extension version every time we connect [#318]
  • Command pg_autoctl perform failover now waits until failover is done [#290]
  • Implement pg_autoctl enable maintenance --allow-failover [#306]
  • Implement a node name [#340]
  • Test primary_conninfo before starting Postgres standby [#350]
  • Compute some memory/cpu Postgres tuning for the host [#335]
  • Provide a better pg_auto_failover upgrade experience [#296]
  • Add support for building against Postgres 13 [#312]
  • Allow registering multiple standbys concurrently [#395]
  • Implement a retry policy for deadlocks and other transient failures [#359]
  • Implement support for interactive tmux sessions [#409]
  • Use monitor notifications to wake up from sleep in the main keeper loop [#387]

Changed

  • Make pg_autoctl the parent process for Postgres [#265, #267, #284]
  • Rename --nodename to --hostname, and nodename to nodehost [#273]
  • Improve output for many pg_autoctl commands, including JSON output
  • Log and notify node health changes [#334]
  • Set default password encryption based on --auth [#383]

Fixed

  • Fix pg_autoctl perform failover/switchover default --group [#289]
  • Fix pgautofailover extension upgrade script from 1.2 to 1.3 [#288]
  • Improve connection retry attempts [#299, #302]
  • Skip network DNS probes on pg_autoctl create monitor --skip-pg-hba [#298]
  • Fix pg_autoctl perform failover [#294, #307]
  • Do not always require --ssl-ca-file for custom SSL [#303]
  • Review the registering process & transaction [#309]
  • Fix usage of replication slots to avoid a Postgres bug [#321]
  • Fix fatal auth pgautofailover monitor [#361]

Don't miss a new pg_auto_failover release

NewReleases is sending notifications on new releases.