Skip to content
pg_failover_slots

pg_failover_slots

pg_failover_slots : PG Failover Slots extension

Overview

ID Extension Package Version Category License Language
9540
pg_failover_slots
pg_failover_slots
1.2.1
ETL
PostgreSQL
C
Attribute Has Binary Has Library Need Load Has DDL Relocatable Trusted
--sL--r
No
Yes
Yes
No
yes
no
Relationships
See Also
pglogical
pglogical_origin
pglogical_ticker
pgactive
repmgr
bgw_replstatus
pgl_ddl_deploy
decoderbufs

Load via shared_preload_libraries on both primary and standby nodes.

Packages

Type Repo Version PG Major Compatibility Package Pattern Dependencies
EXT
PIGSTY
1.2.1
18
17
16
15
14
pg_failover_slots -
RPM
PIGSTY
1.2.1
18
17
16
15
14
pg_failover_slots_$v -
DEB
PIGSTY
1.2.1
18
17
16
15
14
postgresql-$v-pg-failover-slots -
Linux / PG PG18 PG17 PG16 PG15 PG14
el8.x86_64
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
el8.aarch64
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
el9.x86_64
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
el9.aarch64
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
el10.x86_64
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
el10.aarch64
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
PIGSTY 1.2.1
d12.x86_64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
d12.aarch64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
d13.x86_64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
d13.aarch64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
u22.x86_64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
u22.aarch64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
u24.x86_64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
u24.aarch64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
u26.x86_64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
u26.aarch64
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
PGDG 1.2.1
Package Version OS ORG SIZE File URL
pg_failover_slots_18 1.2.1 el8.x86_64 pigsty 24.6 KiB pg_failover_slots_18-1.2.1-1PIGSTY.el8.x86_64.rpm
pg_failover_slots_18 1.2.0 el8.x86_64 pgdg 24.7 KiB pg_failover_slots_18-1.2.0-1PGDG.rhel8.x86_64.rpm
pg_failover_slots_18 1.2.1 el8.aarch64 pigsty 24.3 KiB pg_failover_slots_18-1.2.1-1PIGSTY.el8.aarch64.rpm
pg_failover_slots_18 1.2.0 el8.aarch64 pgdg 24.2 KiB pg_failover_slots_18-1.2.0-1PGDG.rhel8.aarch64.rpm
pg_failover_slots_18 1.2.1 el9.x86_64 pigsty 24.8 KiB pg_failover_slots_18-1.2.1-1PIGSTY.el9.x86_64.rpm
pg_failover_slots_18 1.2.0 el9.x86_64 pgdg 24.7 KiB pg_failover_slots_18-1.2.0-1PGDG.rhel9.x86_64.rpm
pg_failover_slots_18 1.2.1 el9.aarch64 pigsty 24.9 KiB pg_failover_slots_18-1.2.1-1PIGSTY.el9.aarch64.rpm
pg_failover_slots_18 1.2.0 el9.aarch64 pgdg 24.3 KiB pg_failover_slots_18-1.2.0-1PGDG.rhel9.aarch64.rpm
pg_failover_slots_18 1.2.1 el10.x86_64 pigsty 25.2 KiB pg_failover_slots_18-1.2.1-1PIGSTY.el10.x86_64.rpm
pg_failover_slots_18 1.2.0 el10.x86_64 pgdg 25.5 KiB pg_failover_slots_18-1.2.0-1PGDG.rhel10.x86_64.rpm
pg_failover_slots_18 1.2.1 el10.aarch64 pigsty 25.3 KiB pg_failover_slots_18-1.2.1-1PIGSTY.el10.aarch64.rpm
pg_failover_slots_18 1.2.0 el10.aarch64 pgdg 25.1 KiB pg_failover_slots_18-1.2.0-1PGDG.rhel10.aarch64.rpm
postgresql-18-pg-failover-slots 1.2.1 d12.x86_64 pgdg 39.5 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg12+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 d12.x86_64 pigsty 38.4 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~bookworm_amd64.deb
postgresql-18-pg-failover-slots 1.2.0 d12.x86_64 pgdg 39.3 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg12+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 d12.aarch64 pgdg 38.8 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg12+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 d12.aarch64 pigsty 37.8 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~bookworm_arm64.deb
postgresql-18-pg-failover-slots 1.2.0 d12.aarch64 pgdg 38.7 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg12+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 d13.x86_64 pgdg 39.7 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg13+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 d13.x86_64 pigsty 38.7 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~trixie_amd64.deb
postgresql-18-pg-failover-slots 1.2.0 d13.x86_64 pgdg 39.8 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg13+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 d13.aarch64 pgdg 38.9 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg13+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 d13.aarch64 pigsty 38.0 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~trixie_arm64.deb
postgresql-18-pg-failover-slots 1.2.0 d13.aarch64 pgdg 38.9 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg13+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 u22.x86_64 pgdg 40.1 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg22.04+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 u22.x86_64 pigsty 41.5 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~jammy_amd64.deb
postgresql-18-pg-failover-slots 1.2.0 u22.x86_64 pgdg 39.9 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg22.04+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 u22.aarch64 pgdg 38.9 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg22.04+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 u22.aarch64 pigsty 40.6 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~jammy_arm64.deb
postgresql-18-pg-failover-slots 1.2.0 u22.aarch64 pgdg 38.8 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg22.04+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 u24.x86_64 pgdg 39.6 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg24.04+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 u24.x86_64 pigsty 40.5 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~noble_amd64.deb
postgresql-18-pg-failover-slots 1.2.0 u24.x86_64 pgdg 39.6 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg24.04+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 u24.aarch64 pgdg 38.8 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg24.04+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 u24.aarch64 pigsty 39.8 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~noble_arm64.deb
postgresql-18-pg-failover-slots 1.2.0 u24.aarch64 pgdg 38.8 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg24.04+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 u26.x86_64 pgdg 39.3 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg26.04+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 u26.x86_64 pigsty 39.9 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~resolute_amd64.deb
postgresql-18-pg-failover-slots 1.2.0 u26.x86_64 pgdg 39.2 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg26.04+1_amd64.deb
postgresql-18-pg-failover-slots 1.2.1 u26.aarch64 pgdg 38.3 KiB postgresql-18-pg-failover-slots_1.2.1-1.pgdg26.04+1_arm64.deb
postgresql-18-pg-failover-slots 1.2.1 u26.aarch64 pigsty 39.3 KiB postgresql-18-pg-failover-slots_1.2.1-1PIGSTY~resolute_arm64.deb
postgresql-18-pg-failover-slots 1.2.0 u26.aarch64 pgdg 38.2 KiB postgresql-18-pg-failover-slots_1.2.0-1.pgdg26.04+1_arm64.deb

Source

pig build pkg pg_failover_slots;		# build rpm/deb

Install

Make sure PGDG and PIGSTY repo available:

pig repo add pgsql -u   # add both repo and update cache

Install this extension with pig:

pig install pg_failover_slots;		# install via package name, for the active PG version

pig install pg_failover_slots -v 18;   # install for PG 18
pig install pg_failover_slots -v 17;   # install for PG 17
pig install pg_failover_slots -v 16;   # install for PG 16
pig install pg_failover_slots -v 15;   # install for PG 15
pig install pg_failover_slots -v 14;   # install for PG 14

Config this extension to shared_preload_libraries:

shared_preload_libraries = 'pg_failover_slots';

This extension does not need CREATE EXTENSION DDL command

Usage

Sources: README, releases

pg_failover_slots keeps logical replication slots usable across failover by synchronizing slot definitions and positions from a primary to a standby.

Enable it on both nodes

shared_preload_libraries = 'pg_failover_slots'

Required standby settings from the README:

hot_standby_feedback = on
primary_slot_name = 'my_physical_slot'

Main configuration

pg_failover_slots.synchronize_slot_names = 'name_like:%'
pg_failover_slots.drop_extra_slots = true
pg_failover_slots.primary_dsn = 'host=primary dbname=mydb'
pg_failover_slots.standby_slot_names = 'standby_physical_slot'
pg_failover_slots.standby_slots_min_confirmed = -1
pg_failover_slots.worker_nap_time = 60000
pg_failover_slots.maintenance_db = 'postgres'

The README documents synchronize_slot_names filters by exact slot name, LIKE pattern, or plugin name.

Check standby readiness before failover

SELECT slot_name, active
FROM pg_replication_slots
WHERE slot_type = 'logical';

On the standby, logical slots are ready only when they exist and show active = false. The README says active = true means a slot is still being initialized.

Notes

  • PostgreSQL 11+ is required upstream.
  • v1.2.1 is a bug-fix release; no new user-facing SQL or GUC surface was added there.
  • v1.2.0 added PostgreSQL 18 support and clarified drop_extra_slots behavior.
Last updated on