使用 Azure Database for PostgreSQL 灵活服务器故障排除指南

适用于: Azure Database for PostgreSQL 灵活服务器

本文介绍如何从 Azure 门户使用 Azure Database for PostgreSQL 灵活服务器故障排除指南。 若要了解有关故障排除指南的详细信息,请参阅概述

先决条件

要有效地排查特定问题,需要确保已准备好所有必要的数据。 每个故障排除指南都需要使用一组特定的数据,这些数据来自三个不同的功能:诊断设置查询存储增强型指标。 所有故障排除指南都需要将日志发送到 Log Analytics 工作区,但要捕获的特定日志类别可能会因特定指南而异。

请按照配置和访问日志 - Azure Database for PostgreSQL - 灵活服务器中所述的步骤配置诊断设置并将日志发送到 Log Analytics 工作区。

“查询存储”和“增强型指标”是通过服务器参数配置的。 请按照适用于 Azure 门户Azure CLI 的 Azure Database for PostgreSQL 灵活服务器文章中的“配置服务器参数”部分所述的步骤操作。

下表介绍了每个故障排除指南所需的日志类别,以及必要的查询存储、增强型指标和服务器参数先决条件。

故障排除指南 诊断设置日志类别和指标 查询存储 增强指标 服务器参数
CPU PostgreSQL 服务器日志
PostgreSQL 服务器会话数据
PostgreSQL 服务器查询存储运行时
AllMetrics
将 pg_qs.query_capture_mode 设置为 TOP 或 ALL metrics.collector_database_activity 空值
内存 PostgreSQL 服务器日志
PostgreSQL 服务器会话数据
PostgreSQL 服务器查询存储运行时
将 pg_qs.query_capture_mode 设置为 TOP 或 ALL metrics.collector_database_activity 空值
IOPS PostgreSQL 服务器查询存储运行时
PostgreSQL 服务器日志
PostgreSQL 服务器会话数据
PostgreSQL 服务器查询存储等待统计信息
将 pg_qs.query_capture_mode 设置为 TOP 或 ALL
将 pgms_wait_sampling.query_capture_mode 设置为 ALL
metrics.collector_database_activity 将 track_io_timing 设置为开
临时文件 PostgreSQL 服务器会话数据
PostgreSQL 服务器查询存储运行时
PostgreSQL 服务器查询存储等待统计信息
将 pg_qs.query_capture_mode 设置为 TOP 或 ALL
将 pgms_wait_sampling.query_capture_mode 设置为 ALL
metrics.collector_database_activity 空值
自动清理监视 PostgreSQL 服务器日志
PostgreSQL 自动清理和架构统计信息
PostgreSQL 剩余事务
空值 不适用 log_autovacuum_min_duration
自动清理阻碍因素 PostgreSQL 服务器会话数据
PostgreSQL 剩余事务
空值 不可用 空值

注意

请注意,如果最近才启用诊断设置、查询存储、增强式指标或服务器参数,可能需要一些时间才能填充相应数据。 此外,如果数据库在特定时间范围内没有活动,则图表可能显示为空。 在这种情况下,请尝试更改时间范围以捕获相关数据。 请耐心等待,让系统收集和显示必要的数据,然后再继续故障排除工作。

使用故障排除指南

要使用故障排除指南,请执行以下步骤:

  1. 打开 Azure 门户,找到要检查的 Azure Database for PostgreSQL 灵活服务器实例。

  2. 在左侧菜单中的“监视”部分下,选择“故障排除指南”。

  3. 导航到页面顶部,你将在其中找到六个选项卡,每个选项卡都代表了一个你可能希望解决的问题。 单击相关选项卡。

    “故障排除指南”表格式视图的屏幕截图。

  4. 选择要分析的时间段。

    时间范围选取器的屏幕截图。

  5. 按照指南提供的分步说明进行操作。 请密切关注故障排除步骤中绘制的图表和数据可视化内容,因为它们可以帮助你识别任何不准确之处或异常。 使用这些信息可以有效地诊断和解决手头的问题。

检索查询存储收集的查询的文本

出于隐私考虑,某些信息(如查询文本和用户名)可能不会显示在Azure 门户中。 要检索查询存储收集的这些查询的文本,需要登录到 Azure Database for PostgreSQL 灵活服务器实例。 使用所选的 PostgreSQL 客户端,访问存储查询存储数据的 azure_sys 数据库。 连接后,查询 query_store.query_texts_view view 以检索所需的查询文本。

检索查询文本的屏幕截图。

检索用户或角色的名称

出于隐私原因,Azure 门户将显示 PostgreSQL 元数据 (pg_catalog) 中的角色 ID,而不是实际用户名。 若要检索用户名,可以查询 pg_roles 视图或在所选 PostgreSQL 客户端(例如 psql 工具)中使用如下所示的查询:

SELECT 'UserID'::regrole;

在以下示例中,你将检索标识符为 24776 的用户或角色名称。

SELECT '24776'::regrole;

检索用户名的屏幕截图。

后续步骤