阅读(333) (0)

PostgreSQL pg_replication_slots

2021-08-24 10:47:16 更新

pg_replication_slots视图提供了当前存在于数据库集簇上的所有复制槽的列表,其中也包括复制槽的当前状态。

更多关于复制槽的信息,请见第 26.2.6 节第 48 章

表 51.81. pg_replication_slots Columns

列类型

描述

slot_name name

一个唯一的、集簇范围内的复制槽标识符

plugin name

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

slot_type text

槽类型 - physical或者logical

datoid oid (参考 pg_database.oid)

与这个槽相关的数据库的OID,或者为空值。只有逻辑槽具有相关的数据库。

database name (参考 pg_database.datname)

与这个槽相关的数据库的名称,或者为空值。只有逻辑槽具有相关的数据库。

temporary bool

如果这是一个临时复制槽则为真。临时槽不会被保存在磁盘上并且会在出错或会话结束时自动被删除掉。

active bool

如果这个槽当前正在被使用则为真

active_pid int4

如果槽当前正在被使用,则记录使用这个槽的会话的进程 ID。如果不活动则为NULL

xmin xid

这个槽要需要数据库保留的最旧事务。VACUUM不能移除被其后续事务删除的元组。

catalog_xmin xid

这个槽要需要数据库保留的影响系统目录的最旧事务。VACUUM不能移除被其后续事务删除的目录元组。

restart_lsn pg_lsn

可能仍被这个槽的消费者要求的最旧WAL地址(LSN),并且因此不会在检查点期间自动被移除。 如果这个槽的LSN从未被保留过,则为NULL

confirmed_flush_lsn pg_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 的字节数,以便此插槽不会处于"丢失"状态的危险中。 对丢失插槽它是NULL,以及如果max_slot_wal_keep_size-1