RDS for PostgreSQL 中的 postgres_get_av_diag() 函数 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

RDS for PostgreSQL 中的 postgres_get_av_diag() 函数

postgres_get_av_diag() 函数会检索有关 RDS for PostgreSQL 数据库中阻止或滞后的 autovacuum 进程的诊断信息。为了获得准确的结果,需要在具有最早事务 ID 的数据库中执行查询。有关使用具有最早事务 ID 的数据库的更多信息,请参阅未连接到具有最早事务 ID 龄期的数据库

SELECT blocker, DATABASE, blocker_identifier, wait_event, TO_CHAR(autovacuum_lagging_by, 'FM9,999,999,999') AS autovacuum_lagging_by, suggestion, suggested_action FROM ( SELECT * FROM rds_tools.postgres_get_av_diag () ORDER BY autovacuum_lagging_by DESC) q;

postgres_get_av_diag() 函数将返回一个包含以下信息的表:

blocker

指定阻止真空的数据库活动的类别。

database

在适用和支持的情况下指定数据库的名称。这是其中活动正在进行并正在阻止或将阻止自动真空的数据库。这是您需要连接并执行操作的数据库。

blocker_identifier

指定正在阻止或将阻止自动真空的活动的标识符。该标识符可以是进程 ID 以及 SQL 语句、准备好的事务、只读副本的 IP 地址以及复制槽的名称(逻辑或物理)。

wait_event

指定阻止会话的等待事件,适用于以下拦截器:

  • 活动语句

  • 事务中空闲

autovacum_lagging_by

指定自动真空在每个类别的积压工作中滞后的事务数。

suggestion

指定解除拦截器的建议。这些说明包括活动所在的数据库的名称(如果适用)、会话的进程 ID(PID)(如果适用)以及要执行的操作。

suggested_action

建议需要执行哪些操作来解除拦截器。