↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5

52.19. pg_replication_slots #

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

有关复制槽的更多信息,请参见第 26.2.6 节和第 47 章。

表 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

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

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 被设置为非负值时。该状态可以返回为 reserved 或 extended。

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

safe_wal_size int8

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

two_phase bool

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

inactive_since timestamptz

槽变为不活动的时间。如果当前正在从该槽流式传输数据,则为 NULL。注意,对于备库上从主库同步而来的槽(其 synced 字段为 true),inactive_since 表示槽同步(参见第 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

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


报告文档问题

阅读 上游文档. 通过 PostgreSQL 文档反馈表单.