9.3 9.4 9.5 9.6 10 11 12 13 14 15 Current(16) 17
问题报告 纠错本页面

52.19. pg_replication_slots #

pg_replication_slots视图提供了当前集簇上存在的所有复制槽的列表,以及它们的当前状态。

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

Table 52.19. pg_replication_slots

列类型

描述

slot_name name

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

plugin name

包含这个逻辑槽正在使用的输出插件的共享对象基础名称,对于物理槽为空值。

slot_type text

槽类型 - physical或者logical

datoid oid (参考 pg_database.oid)

与这个槽相关的数据库的OID,或者为空值。只有逻辑槽具有相关的数据库。

database name (参考 pg_database.datname)

与这个槽相关的数据库的名称,或者为空值。只有逻辑槽具有相关的数据库。

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 文件,并且将在下一个检查点删除其中一些文件。 此状态可以返回到reservedextended

  • lost意味着某些需要的 WAL 文件已被删除,并且此插槽不再可用。

最后两种状态仅在max_slot_wal_keep_size为非负值时才看到。 如果restart_lsn为 NULL,则此字段为空。

safe_wal_size int8

可写入 WAL 的字节数,以便此插槽不会处于"丢失"状态的危险中。 对丢失插槽它是NULL,以及如果max_slot_wal_keep_size-1

two_phase bool

如果该插槽为解码准备事务所启用则为真。物理插槽总是为假。

inactive_since timestamptz

插槽变为非活动状态的时间。如果插槽当前正在流式传输,则为 NULL。 注意,对于从主服务器同步的备用服务器上的插槽(其 synced 字段为 true), inactive_since 表示插槽同步(参见 Section 47.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

如果这是一个从主服务器同步过来的逻辑槽,则为真。在热备份中,标记为 true 的 synced 列的槽既不能用于逻辑解码,也不能手动删除。该列的值在 主服务器上没有意义;主服务器上所有槽的该列默认值为 false,但可能(如果 是从提升的备用服务器遗留的)也为 true。