pg_failover_slots
Overview
| Package | Version | Category | License | Language |
|---|---|---|---|---|
pg_failover_slots | 1.2.1 | ETL | PostgreSQL | C |
| ID | Extension | Bin | Lib | Load | Create | Trust | Reloc | Schema |
|---|---|---|---|---|---|---|---|---|
| 9540 | pg_failover_slots | No | Yes | Yes | No | No | Yes | - |
| Related | pglogical pglogical_origin pglogical_ticker pgactive repmgr bgw_replstatus pgl_ddl_deploy decoderbufs |
|---|
Load via shared_preload_libraries on both primary and standby nodes.
Version
| Type | Repo | Version | PG Ver | Package | Deps |
|---|---|---|---|---|---|
| EXT | PIGSTY | 1.2.1 | 1817161514 | pg_failover_slots | - |
| RPM | PIGSTY | 1.2.1 | 1817161514 | pg_failover_slots_$v | - |
| DEB | PIGSTY | 1.2.1 | 1817161514 | postgresql-$v-pg-failover-slots | - |
Build
You can build the RPM / DEB packages for pg_failover_slots using pig build:
pig build pkg pg_failover_slots # build RPM / DEB packages
Install
You can install pg_failover_slots directly. First, make sure the PGDG and PIGSTY repositories are added and enabled:
pig repo add pgsql -u # Add repo and update cache
Install the extension using pig or apt/yum/dnf:
pig install pg_failover_slots; # Install for current active PG version
pig ext install -y pg_failover_slots -v 18 # PG 18
pig ext install -y pg_failover_slots -v 17 # PG 17
pig ext install -y pg_failover_slots -v 16 # PG 16
pig ext install -y pg_failover_slots -v 15 # PG 15
pig ext install -y pg_failover_slots -v 14 # PG 14
dnf install -y pg_failover_slots_18 # PG 18
dnf install -y pg_failover_slots_17 # PG 17
dnf install -y pg_failover_slots_16 # PG 16
dnf install -y pg_failover_slots_15 # PG 15
dnf install -y pg_failover_slots_14 # PG 14
apt install -y postgresql-18-pg-failover-slots # PG 18
apt install -y postgresql-17-pg-failover-slots # PG 17
apt install -y postgresql-16-pg-failover-slots # PG 16
apt install -y postgresql-15-pg-failover-slots # PG 15
apt install -y postgresql-14-pg-failover-slots # PG 14
Preload:
shared_preload_libraries = 'pg_failover_slots';
Usage
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.1is a bug-fix release; no new user-facing SQL or GUC surface was added there.v1.2.0added PostgreSQL 18 support and clarifieddrop_extra_slotsbehavior.
Feedback
Was this page helpful?
Thanks for the feedback! Please let us know how we can improve.
Sorry to hear that. Please let us know how we can improve.