受支持版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发版本: devel

53.20. pg_replication_slots #

pg_replication_slots视图提供当前数据库集簇中所有复制槽及其当前状态的列表。

有关复制槽的更多信息,请参见Section 26.2.6Chapter 47

Table 53.20. pg_replication_slots

列类型

描述

slot_name name

一个集簇范围内唯一的复制槽标识符

plugin name

包含该逻辑槽所用输出插件的共享对象的基础名称;物理槽为 NULL

slot_type text

槽类型:physicallogical

datoid oid (参考 pg_database.oid)

与该槽关联的数据库 OID,或为 NULL。只有逻辑槽才有关联数据库。

database name (参考 pg_database.datname)

与该槽关联的数据库名称,或为 NULL。只有逻辑槽才有关联数据库。

temporary bool

如果这是一个临时复制槽则为真。临时槽不会保存到磁盘,并会在出错时或会话结束时自动删除。

active bool

如果该槽当前正被用于流送则为真

active_pid int4

为该槽流送数据的会话的进程 ID。NULL 表示不活动。

xmin xid

该槽要求数据库保留的最旧事务。VACUUM 不能移除由任何更晚事务删除的元组。

catalog_xmin xid

该槽要求数据库保留的、影响系统目录的最旧事务。VACUUM 不能移除由任何更晚事务删除的目录元组。

restart_lsn pg_lsn

该槽的消费者仍可能需要的最旧 WAL 的地址(LSN),因此除非此 LSN 落后于当前 LSN 超过 max_slot_wal_keep_size,否则在检查点期间不会被自动删除。如果该槽的 LSN 从未被保留,则为 NULL

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 文件,其中一部分将在下一个检查点被移除。这通常发生在 max_slot_wal_keep_size 被设置为非负值时。该状态可以返回为 reservedextended

  • lost 表示该槽已经不可用。

safe_wal_size int8

还可以写入 WAL 的字节数,使该槽不至于进入“lost”状态。对于已丢失的槽,以及 max_slot_wal_keep_size-1 时,该值为 NULL

two_phase bool

如果该槽启用了预备事务解码则为真。物理槽始终为假。

two_phase_at pg_lsn

自哪个地址(LSN)起启用预备事务解码。对于 two_phase 为假的逻辑槽,以及物理槽,该值为 NULL

inactive_since timestamptz

槽变为不活动的时间。如果该槽当前正在被流送,则为 NULL。如果该槽变为无效,该值将不再更新。对于从主库同步而来的备库逻辑槽(其 synced 字段为 true),inactive_since 表示槽同步(参见 Section 47.2.3)最近一次停止的时间。如果该槽始终保持同步,则为 NULL。这有助于跟踪备库上的槽同步何时被中断。

conflicting bool

如果该逻辑槽与恢复发生冲突(因此现已失效)则为真。当该列为真时,请检查 invalidation_reason 列以了解冲突原因。物理槽始终为 NULL

invalidation_reason text

该槽失效的原因。逻辑槽和物理槽都可能设置该值。若该槽未失效,则为 NULL。可能值为:

  • wal_removed 表示所需的 WAL 已被移除。

  • rows_removed 表示所需的行已被移除。该值只会设置在逻辑槽上。

  • wal_level_insufficient 表示主库没有足够的 wal_level 来执行逻辑解码。该值只会设置在逻辑槽上。

  • idle_timeout 表示该槽保持不活动的时间已超过配置的 idle_replication_slot_timeout 时长。

failover bool

如果这是一个允许同步到备库的逻辑槽则为真,这样逻辑复制就可以在故障切换后从新的主库恢复。物理槽始终为假。

synced bool

如果这是一个从主库同步而来的逻辑槽则为真。在热备上,synced 列为真的槽既不能用于逻辑解码,也不能手工删除。该列在主库上的值没有意义;主库上该列默认对所有槽都为假,但也可能(如果是由已提升的备库遗留)为真。


提交更正

如果您发现文档中有不正确的内容、与您使用特定功能的经验不符或需要进一步说明,请使用此表单来报告文档问题。