52.19. pg_replication_slots#

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

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

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

Тип столбца

Описание

slot_namename

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

pluginname

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

slot_typetext

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

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

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

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

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

temporarybool

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

activebool

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

active_pidint4

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

xminxid

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

catalog_xminxid

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

restart_lsnpg_lsn

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

confirmed_flush_lsnpg_lsn

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

wal_statustext

Состояние файлов 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_sizeint8

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

two_phasebool

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

inactive_sincetimestamptz

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

conflictingbool

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

invalidation_reasontext

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

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

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

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

failoverbool

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

syncedbool

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


close