Sélectionner les slots de réplication PostgreSQL
Les slots de réplication PostgreSQL permettent de suivre la progression des serveurs secondaires et d’éviter la suppression des WAL avant qu’ils ne soient consommés. Savoir les interroger est indispensable pour tout administrateur.
Les vues système fournissent des informations détaillées sur l’état de chaque slot : nom, type, base de données, position LSN et dernière activité.
Vue pg_replication_slots
La vue pg_replication_slots liste tous les slots créés sur l’instance. Elle contient les colonnes slot_name, plugin, slot_type, datoid, database, active et restart_lsn.
- slot_name : identifiant unique du slot
- restart_lsn : position à partir de laquelle les WAL sont conservés
- active : indique si un client est connecté
Requête de base pour lister les slots
- Exécutez la commande suivante pour obtenir
- un aperçu rapide de tous les slots
Exécutez la commande suivante pour obtenir un aperçu rapide de tous les slots et de leur statut :
SELECT slot_name, slot_type, database, active, restart_lsn FROM pg_replication_slots;
Surveiller la latence de réplication
- ✓Pour mesurer le décalage entre le
- ✓primaire et le secondaire, combinez les informations
- ✓Surveiller la latence de réplication
Pour mesurer le décalage entre le primaire et le secondaire, combinez les informations des slots avec pg_stat_replication. Comparez sent_lsn et replay_lsn.
Supprimer un slot inutilisé
- ✓Utilisez la fonction pg_drop_replication_slot pour supprimer
- ✓un slot qui n’est plus actif et
- ✓Supprimer un slot inutilisé
Utilisez la fonction pg_drop_replication_slot pour supprimer un slot qui n’est plus actif et libérer l’espace WAL correspondant.
Questions fréquentes
Comment voir tous les slots de réplication actifs ?
Interrogez la vue pg_replication_slots et filtrez sur la colonne active = true.
Que signifie restart_lsn ?
C’est la position LSN à partir de laquelle les fichiers WAL sont conservés tant que le slot existe.
Peut-on créer un slot sans connexion physique ?
Oui, les slots logiques peuvent exister sans connexion active tant que le slot n’est pas supprimé.
Comment supprimer un slot obsolète ?
Utilisez SELECT pg_drop_replication_slot('nom_du_slot');
