54.20. pg_replication_slots #

Представление pg_replication_slots содержит список всех слотов репликации, существующих в данный момент в кластере баз данных, а также их текущее состояние.

За дополнительной информацией о слотах репликации обратитесь к Подразделу 26.2.6 и Главе 49.

Таблица 54.20. Столбцы pg_replication_slots

Тип столбца

Описание

slot_name name

Уникальный в рамках кластера идентификатор для слота репликации

plugin name

Базовое имя разделяемого объекта, содержащего модуль вывода, который используется этим логическим слотом, либо NULL для физических слотов.

slot_type text

Тип слота: physical (физический) или logical (логический)

datoid oid (ссылается на pg_database.oid)

OID базы данных, с которой связан этот слот, либо NULL. С базой данных могут быть связаны только логические слоты.

database name (ссылается на pg_database.datname)

Имя базы данных, с которой связан этот слот, либо NULL. С базой данных могут быть связаны только логические слоты.

temporary bool

True, если это временный слот репликации. Временные слоты не сохраняются на диск и автоматически удаляются при ошибке или завершении сеанса.

active bool

True, если слот активно используется в данный момент

active_pid int4

ID процесса сеанса, занимающего этот слот, если данный слот активно используется в данный момент. NULL, если он не используется.

xmin xid

Старейшая транзакция, которая должна сохраняться в базе данных для этого слота. VACUUM не сможет удалять кортежи, удалённые более поздними транзакциями.

catalog_xmin xid

Старейшая транзакция, затрагивающая системные каталоги, которая должна сохраняться в базе данных для этого слота. VACUUM не сможет удалять кортежи, удалённые более поздними транзакциями.

restart_lsn pg_lsn

Адрес (LSN) старейшей записи в WAL, которая по-прежнему может быть нужна пользователям этого слота и поэтому не будет автоматически удаляться во время контрольной точки (при условии соблюдении ограничения max_slot_wal_keep_size). Принимает значение NULL, если LSN данного слота ещё не резервировался.

confirmed_flush_lsn pg_lsn

Адрес (LSN), до которого потребитель логического слота подтвердил получение данных. Данные, которые относятся к транзакциям, зафиксированным до этого LSN, уже недоступны. Для физических слотов — NULL.

wal_status text

Состояние файлов WAL, нужных данному слоту. Возможные значения:

  • reserved (резерв) означает, что объём требуемых файлов вписывается в max_wal_size.

  • extended (превышение) означает, что предел max_wal_size превышен, но файлы всё ещё сохраняются, потому что вписываются в wal_keep_size или нужны слоту репликации.

  • unreserved (нет резерва) означает, что для слота больше не сохраняются требуемые файлы WAL и некоторые из них будут удалены при следующей контрольной точке. Это состояние может смениться на reserved или extended.

  • lost (потеря) означает, что какие-либо из нужных файлов WAL были удалены и данный слот уже нельзя использовать.

Последние два значения можно увидеть только при неотрицательном значении max_slot_wal_keep_size. Если в restart_lsn содержится NULL, в этом поле также будет NULL.

safe_wal_size int8

Объём, который может быть записан в WAL, чтобы этот слот не оказался в состоянии «lost». Задаётся в байтах. Для потерянных слотов равен NULL, как и при max_slot_wal_keep_size равном -1.

two_phase bool

True, если слот используется для декодирования подготовленных транзакций. Для физических слотов всегда false.

inactive_since timestamptz

Время, когда слот перестал быть активным. Если слот используется прямо сейчас, отобразится NULL. Обратите внимание, что для слотов на резервном сервере, которые синхронизируются с ведущего сервера (для которых поле synced содержит значение true), столбец inactive_since показывает время последней синхронизации (см. Подраздел 49.2.3).

conflicting bool

True, если этот логический слот конфликтует с восстановлением (и поэтому аннулируется). При значении true в этом столбце обратитесь к столбцу invalidation_reason, чтобы узнать причину аннулирования. Для физических слотов всегда NULL.

invalidation_reason text

Причина аннулирования слота. Устанавливается как для логических, так и для физических слотов. NULL, если слот не аннулирован. Допустимые значения:

  • wal_removed означает, что необходимый файл WAL был удалён.

  • rows_removed означает, что необходимые строки были удалены. Устанавливается только для логических слотов.

  • wal_level_insufficient означает неподходящее значение параметра конфигурации wal_level на ведущем сервере для выполнения логического декодирования. Устанавливается только для логических слотов.

failover bool

True, если для это логического слота включена возможность синхронизации с резервными серверами так, чтобы логическая репликация могла быть возобновлена с нового ведущего сервера после аварийного переключения. Для физических слотов всегда false.

synced bool

True, если этот логический слот был синхронизирован с ведущего сервера. На сервере горячего резерва слоты, для которых столбец synced содержит значение true, не могут использоваться для логического декодирования или быть удалены вручную. Для ведущего сервера значение в этом столбце роли не играет и по умолчанию false для всех слотов, однако может быть и true (если ранее этот узел был резервным, и после его повышения до ведущего значение в столбце осталось true).