52.19. pg_replication_slots#

52.19. pg_replication_slots

52.19. pg_replication_slots #

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

Для получения дополнительной информации о слотах репликации, см. Раздел 26.2.6 и Глава 46.

Таблица 52.19. 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

Истина, если этот слот в настоящее время транслируется

active_pid int4

Идентификатор процесса сессии, передающей данные для этого слота. NULL, если неактивен.

xmin xid

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

catalog_xmin xid

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

restart_lsn pg_lsn

Адрес (LSN) самого старого WAL, который все еще может потребоваться потребителю этого слота и, следовательно, не будет автоматически удален во время контрольных точек, если этот LSN отстает не более, чем на max_slot_wal_keep_size от текущего LSN. 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, чтобы этот слот не оказался в состоянии "потерян". Оно равно NULL для потерянных слотов, а также если max_slot_wal_keep_size равно -1.

two_phase bool

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

inactive_since timestamptz

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

conflicting bool

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

invalidation_reason text

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

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

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

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

failover bool

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

synced bool

Истина, если это логический слот, который был синхронизирован с основным сервером. На горячем резервном сервере слоты с отмеченной как истина колонкой synced не могут быть использованы для логического декодирования и не могут быть удалены вручную. Значение этой колонки не имеет значения на основном сервере; значение колонки на основном сервере по умолчанию ложь для всех слотов, но может (если осталось от повышенного резервного) также быть истиной.