支持的版本: 当前 (17) / 16 / 15 / 14 / 13
开发版本: 开发版
不支持的版本: 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。 如果此槽的 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 的字节数,以便此槽不会处于“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 的 synced 列的槽既不能用于逻辑解码,也不能手动删除。此列的值在主服务器上没有意义;主服务器上此列的值对于所有槽默认为 false,但(如果从提升的备用服务器遗留下来)也可能为 true。


提交更正

如果您在文档中发现任何不正确、与特定功能的体验不符或需要进一步说明的地方,请使用此表单报告文档问题。