PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

53.20. pg_replication_slots #

pg_replication_slots 视图列出数据库集簇上 当前存在的所有复制槽及其当前状态。

关于复制槽的更多信息, 见 Section 26.2.6 和 Chapter 47。

Table 53.20. \1 字段列说明

Column Type

Description

slot_name name

在整个集群范围内唯一的复制槽标识符

plugin name

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

slot_type text

槽的类型:physical 或 logical

datoid oid (references pg_database.oid)

与此槽关联的数据库的 OID,或空。 只有逻辑槽有关联的数据库。

database name (references pg_database.datname)

与此槽关联的数据库的名称,或空。 只有逻辑槽有关联的数据库。

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_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" 状态的危险。 对已经丢失的槽,以及 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 表示槽同步(见 Section 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。