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

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

槽类型: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_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,则此字段为 null。

safe_wal_size int8

可以写入 WAL 的字节数,以便此槽不会有进入“丢失”状态的危险。对于丢失的槽,以及如果 max_slot_wal_keep_size-1,则为 NULL。

two_phase bool

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

inactive_since timestamptz

槽变为非活动状态以来的时间。如果槽当前正在使用,则为 NULL。请注意,对于从主服务器同步(其 synced 字段为 true)的备用服务器上的槽,inactive_since 指示最后一次同步(参见第 47.2.3 节)时间。

conflicting bool

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

invalidation_reason text

槽失效的原因。它为逻辑和物理槽都设置。如果槽未失效,则为 NULL。可能的值为

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

  • rows_removed 表示所需的 row 已被删除。仅为逻辑槽设置。

  • wal_level_insufficient 表示主服务器没有执行逻辑解码所需的 wal_level。仅为逻辑槽设置。

failover bool

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

synced bool

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


提交更正

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