支持的版本:当前 (17) / 16 / 15 / 14 / 13
开发版本:devel
不支持的版本:12 / 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,否则不会在检查点期间自动删除。NULL 如果此槽的 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 文件,并且其中一些文件将在下一个检查点被删除。此状态可以返回到 reservedextended

  • lost 表示某些所需的 WAL 文件已被删除,并且此槽不再可用。

仅当 max_slot_wal_keep_size 为非负数时才会看到最后两种状态。如果 restart_lsn 为 NULL,则此字段为 null。

safe_wal_size int8

可以写入 WAL 的字节数,这样此槽就不会处于“lost”状态。对于丢失的槽以及当 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 表示所需的行已被删除。仅为逻辑槽设置。

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

failover bool

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

synced bool

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


提交更正

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