Logical Replication Failover Slots

PostgreSQL 🔴 Senior

Définition

Depuis PostgreSQL 17 (26 septembre 2024), les slots de réplication logique peuvent être synchronises vers un standby physique via sync_réplication_slots, et l'utilitaire pg_createsubscriber créé un abonne logique a partir d'un standby physique. pg_upgrade préserve désormais aussi les slots et abonnements logiques existants.

Analogie

Avant, basculer sur un standby faisait perdre la place ou en étaient les abonnes logiques, comme perdre le signet d'un livre au changement de bibliothécaire. Désormais le signet suit le changement.

Exemple de code

# Sur le primaire
psql -c "ALTER SYSTEM SET sync_replication_slots = on;"

# Creer un abonne logique a partir d'un standby physique
pg_createsubscriber --pgdata=/var/lib/postgresql/standby \
  --publication=pub1 --subscription=sub1 \
  --database=app --socket-directory=/tmp

Cas d'usage

Basculer (failover) un primaire sans casser les abonnements de réplication logique en aval.

Anti-pattern

Promouvoir un standby physique en primaire sans sync_réplication_slots active : les consommateurs logiques perdent leur position.
#sgbd#interview#database#postgresql#pg17

Fiche mise à jour le 2026-09-27

← → au clavier pour passer d'une fiche à l'autre