Redrock Postgres 搜索 英文
版本: 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

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 不会被自动移除。如果此槽的 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,则此字段为空。

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 表示已删除所需行。它仅为逻辑槽设置。

  • wal_level_insufficient 表示主服务器没有 wal_level 用于执行逻辑解码。它仅为逻辑槽设置。

failover bool

如果此逻辑槽已启用,以便与备用同步,从而可以在故障转移后从新主节点恢复逻辑复制。对于物理槽始终为 false。

synced 布尔值

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