PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 17.1 » Internes » Vues système » pg_replication_slots

52.19. pg_replication_slots #

La vue pg_replication_slots fournit une liste de tous les slots de réplication qui existent actuellement sur l'instance, avec leur état courant.

Pour plus d'informations sur les slots de réplication, voir Section 26.2.6 et Chapitre 47.

Tableau 52.19. Colonnes de pg_replication_slots

Type

Description

slot_name name

Un identifiant unique au niveau de l'instance pour le slot de réplication

plugin name

Le nom de base de l'objet partagé contenant le plugin en sortie que ce slot logique utilise, NULL pour les slots physiques

slot_type text

Le type du slot - physical ou logical

datoid oid (référence pg_database.oid)

L'OID de la base de données avec laquelle ce slot est associée, ou NULL. Seuls les slots logiques ont une base de données associée

database name (référence pg_database.datname)

Le nom de la base de données avec laquelle ce slot est associée, ou NULL. Seuls les slots logiques ont une base de données associée.

temporary bool

True si c'est un slot de réplication temporaire. Les slots temporaires ne sont pas sauvegardés sur disque et sont automatiquement supprimés lors d'une erreur ou lorsque la session est terminée.

active bool

Vrai si ce slot est actuellement utilisé

active_pid int4

L'ID du processus de la session utilisant ce slot si le slot est actuellement activement utilisé. NULL si inactif.

xmin xid

La plus ancienne transaction dont ce slot a besoin, et que le serveur doit donc conserver. VACUUM ne peut pas traiter des lignes supprimées par des transactions plus récentes.

catalog_xmin xid

La plus ancienne transaction affectant les catalogues systèmes dont ce slot a besoin et que le serveur doit donc conserver. VACUUM ne peut pas traiter des lignes du catalogues supprimées par des transactions plus récentes.

restart_lsn pg_lsn

L'adresse (LSN) du plus ancien journal de transactions toujours requis par le consommateur de ce slot et qui, de ce fait, ne pourra plus être automatiquement supprimé pendant les checkpoints sauf si ce LSN est en retard de plus de max_slot_wal_keep_size à partir du LSN courant. NULL si le LSN de ce slot n'a jamais été réservé.

confirmed_flush_lsn pg_lsn

L'adresse (LSN) jusqu'où le consommateur de la réplication logique a confirmé avoir reçu les données. Les données correspondant aux transactions validées avant ce LSN ne sont plus disponibles. NULL pour les slots physiques.

wal_status text

Disponibilité des journaux de transactions nécessaires à ce slot. Les valeurs possibles sont :

  • reserved signifie que les journaux nécessaires sont contenus dans max_wal_size.

  • extended signifie que max_wal_size est dépassé mais que les fichiers sont toujours retenus, soit par un slot de réplication soit par wal_keep_size.

  • unreserved signifie que le slot ne contient plus les fichiers nécessaires et que certains seront supprimés au prochain checkpoint. Cet état peut renvoyer soit reserved soit extended.

  • lost signifie que certains journaux requis sont définitivement perdus et que ce slot ne peut plus être utilisé.

Les deux derniers états sont possibles uniquement quand max_slot_wal_keep_size est positif ou nul. Si restart_lsn vaut NULL, ce champ est NULL aussi.

safe_wal_size pg_lsn

Le nombre d'octets à écrire dans les WAL pour que ce slot ne soit pas en danger de passer dans l'état lost. Il vaut NULL pour les slots dans l'état lost, ainsi que si max_slot_wal_keep_size vaut -1.

two_phase bool

True si le slot est activé pour décoder les transactions préparées. Toujours false pour les slots physiques.

inactive_since timestamptz

Horodatage du moment où le slot est devenu inactif. NULL si le slot est en cours d'utilisation. Notez que pour les slots sur un serveur secondaire, synchronisés à partir du serveur primaire (donc dont le champ synced vaut true), le champ inactive_since indique le moment de la dernière synchronisation (voir Section 47.2.3).

conflicting bool

True si ce slot logique est entré en conflit avec la restauration (et est donc maintenant invalidé). Quand cette colonne vaut true, vérifiez la colonne invalidation_reason pour connaître la raison du conflit. Toujours à NULL pour les slots physiques.

invalidation_reason text

La raison de l'invalidation du slot. Il est utilisé pour les slots logiques et physiques. NULL si le slot n'est pas invalidé. Les valeurs possibles sont :

  • wal_removed signifie que le WAL nécessaire a été supprimé.

  • rows_removed signifie que les lignes requises ont été supprimées. Il est mis à jour uniquement pour les slots logiques.

  • wal_level_insufficient signifie que le serveur primaire n'a pas une configuration correcte du paramètre wal_level pour réaliser un décodage logique. Il est mis à jour seulement pour les slots logiques.

failover bool

True si ce slot logique doit être synchronisé vers les serveurs secondaires pour que la réplication logique puisse continuer à partir du nouveau primaire suite à une bascule de type failover. Toujours false pour les slots physiques.

synced bool

True si c'est un slot logique qui a été synchronisé à partir d'un serveur primaire. Sur un serveur secondaire en Hot Standby, les slots dont la colonne synced vaut true ne peuvent être ni utilisés pour du décodage logique ni supprimés manuellement. La valeur de cette colonne n'a pas de signification sur le serveur primaire ; la valeur de la colonne sur le primaire vaut false pour tous les slots mais pourrait (dans le cas d'un secondaire promu) valoir aussi true.