2025年9月25日: PostgreSQL 18 发布!
支持的版本:当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 11 / 10 / 9.6 / 9.5 / 9.4

53.20. pg_replication_slots #

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

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

表 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

如果是临时复制槽,则为 true。临时槽不保存到磁盘,并在错误或会话结束后自动删除。

active bool

如果此槽当前正在流式传输,则为 true。

active_pid int4

为此槽流式传输数据的会话的进程 ID。NULL 表示不活动。

xmin xid

此槽需要数据库保留的最旧事务。VACUUM 无法删除由任何后续事务删除的元组。

catalog_xmin xid

此槽需要数据库保留的、影响系统目录的最旧事务。VACUUM 无法删除由任何后续事务删除的目录元组。

restart_lsn pg_lsn

此槽的消费者仍可能需要的、因此在检查点期间不会被自动删除的最旧 WAL 的地址(LSN),除非此 LSN 落后于当前 LSN 超过 max_slot_wal_keep_sizeNULL 表示此槽的 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 文件,其中一些将在下一个检查点被删除。这通常发生在 max_slot_wal_keep_size 设置为非负值时。此状态可以返回到 reservedextended

  • lost 表示此槽不再可用。

safe_wal_size int8

可以写入 WAL 的字节数,这样该槽就不会处于“lost”状态。对于 lost 槽,以及当 max_slot_wal_keep_size-1 时,此值为 NULL。

two_phase bool

如果为解码准备事务启用了该槽,则为 true。对于物理槽,始终为 false。

two_phase_at pg_lsn

启用解码准备事务的地址(LSN)。对于 two_phase 为 false 的逻辑槽和物理槽,为 NULL

inactive_since timestamptz

槽变为不活动状态的时间。NULL 表示槽当前正在流式传输。如果槽变为无效,此值将永远不会更新。对于正在从主服务器同步的备用槽(其 synced 字段为 true),inactive_since 表示槽同步(参见 第 47.2.3 节)最近一次停止的时间。NULL 表示槽始终已同步。这有助于备用槽跟踪同步中断的时间。

conflicting bool

如果此逻辑槽与恢复冲突(因此现已失效),则为 true。当此列为 true 时,请检查 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

如果是启用同步到备用服务器以在故障转移后从新主服务器恢复逻辑复制的逻辑槽,则为 true。对于物理槽,始终为 false。

synced bool

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


提交更正

如果您在文档中发现任何不正确、与您对特定功能的实际体验不符或需要进一步澄清的内容,请使用此表单报告文档问题。