53.20. pg_replication_slots #

La vista pg_replication_slots proporciona una lista de todas las ranuras (slots) de replicación que existen actualmente en el clúster de bases de datos, junto con su estado actual.

Para obtener más información sobre las ranuras de replicación, consulta Section 26.2.6 y Chapter 47.

Table 53.20. pg_replication_slots Columns

Tipo de columna

Descripción

slot_name name

Un identificador único en todo el clúster para la ranura de replicación.

plugin name

El nombre base del objeto compartido que contiene el plugin de salida que está utilizando esta ranura lógica, o nulo para las ranuras físicas.

slot_type text

El tipo de ranura: physical o logical.

datoid oid (references pg_database.oid)

El OID de la base de datos con la que está asociada esta ranura, o nulo. Solo las ranuras lógicas tienen una base de datos asociada.

database name (references pg_database.datname)

El nombre de la base de datos con la que está asociada esta ranura, o nulo. Solo las ranuras lógicas tienen una base de datos asociada.

temporary bool

True si esta es una ranura de replicación temporal. Las ranuras temporales no se guardan en el disco y se eliminan automáticamente en caso de error o cuando finaliza la sesión.

active bool

True si esta ranura se está transmitiendo actualmente.

active_pid int4

El ID de proceso de la sesión que transmite datos para esta ranura. NULL si está inactiva.

xmin xid

La transacción más antigua que esta ranura necesita que la base de datos conserve. VACUUM no puede eliminar las tuplas eliminadas por ninguna transacción posterior.

catalog_xmin xid

La transacción más antigua que afecta a los catálogos del sistema que esta ranura necesita que la base de datos conserve. VACUUM no puede eliminar las tuplas del catálogo eliminadas por ninguna transacción posterior.

restart_lsn pg_lsn

La dirección (LSN) del WAL más antiguo que aún podría requerir el consumidor de esta ranura y, por lo tanto, no se eliminará automáticamente durante los puntos de control (checkpoints) a menos que este LSN se retrase más de max_slot_wal_keep_size del LSN actual. NULL si el LSN de esta ranura nunca se ha reservado.

confirmed_flush_lsn pg_lsn

La dirección (LSN) hasta la cual el consumidor de la ranura lógica ha confirmado la recepción de datos. Los datos correspondientes a las transacciones confirmadas antes de este LSN ya no están disponibles. NULL para las ranuras físicas.

wal_status text

Disponibilidad de los archivos WAL reclamados por esta ranura. Los valores posibles son:

  • reserved significa que los archivos reclamados están dentro de max_wal_size.

  • extended significa que se supera max_wal_size pero los archivos aún se conservan, ya sea por la ranura de replicación o por wal_keep_size.

  • unreserved significa que la ranura ya no conserva los archivos WAL requeridos y algunos de ellos se eliminarán en el próximo punto de control. Esto suele ocurrir cuando max_slot_wal_keep_size se establece en un valor no negativo. Este estado puede volver a reserved o extended.

  • lost significa que esta ranura ya no se puede utilizar.

safe_wal_size int8

El número de bytes que se pueden escribir en el WAL de modo que esta ranura no corra peligro de quedar en el estado "lost". Es NULL para las ranuras perdidas, así como si max_slot_wal_keep_size es -1.

two_phase bool

True si la ranura está habilitada para decodificar transacciones preparadas. Siempre false para ranuras físicas.

two_phase_at pg_lsn

La dirección (LSN) a partir de la cual se habilita la decodificación de transacciones preparadas. NULL para ranuras lógicas donde two_phase es false y para ranuras físicas.

inactive_since timestamptz

La hora en que la ranura quedó inactiva. NULL si la ranura se está transmitiendo actualmente. Si la ranura se vuelve no válida, este valor nunca se actualizará. Para las ranuras en espera (standby slots) que se están sincronizando desde un servidor primario (cuyo campo synced es true), el campo inactive_since indica la hora en que se detuvo más recientemente la sincronización de la ranura (consulta Section 47.2.3). NULL si la ranura siempre ha estado sincronizada. Esto ayuda a las ranuras en espera a rastrear cuándo se interrumpió la sincronización.

conflicting bool

True si esta ranura lógica entró en conflicto con la recuperación (y por lo tanto ahora está invalidada). Cuando esta columna es true, consulta la columna invalidation_reason para conocer el motivo del conflicto. Siempre NULL para las ranuras físicas.

invalidation_reason text

La razón de la invalidación de la ranura. Se establece tanto para las ranuras lógicas como para las físicas. NULL si la ranura no está invalidada. Los valores posibles son:

  • wal_removed significa que el WAL requerido ha sido eliminado.

  • rows_removed significa que las filas requeridas han sido eliminadas. Se establece solo para las ranuras lógicas.

  • wal_level_insufficient significa que el primario no tiene un wal_level suficiente para realizar la decodificación lógica. Se establece solo para las ranuras lógicas.

  • idle_timeout significa que la ranura ha permanecido inactiva por más tiempo que la duración configurada en idle_replication_slot_timeout.

failover bool

True si esta es una ranura lógica habilitada para sincronizarse con los servidores en espera (standbys), de modo que la replicación lógica pueda reanudarse desde el nuevo primario después de un failover. Siempre false para ranuras físicas.

synced bool

True si esta es una ranura lógica que se sincronizó desde un servidor primario. En un hot standby, las ranuras con la columna synced marcada como true no se pueden utilizar para decodificación lógica ni eliminar manualmente. El valor de esta columna no tiene significado en el servidor primario; el valor de la columna en el primario es false por defecto para todas las ranuras, pero también puede ser true (si queda de un standby promovido).