使用 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 剩余事务 |
空值 | 不可用 | 空值 |
注意
请注意,如果最近才启用诊断设置、查询存储、增强式指标或服务器参数,可能需要一些时间才能填充相应数据。 此外,如果数据库在特定时间范围内没有活动,则图表可能显示为空。 在这种情况下,请尝试更改时间范围以捕获相关数据。 请耐心等待,让系统收集和显示必要的数据,然后再继续故障排除工作。
使用故障排除指南
要使用故障排除指南,请执行以下步骤:
打开 Azure 门户,找到要检查的 Azure Database for PostgreSQL 灵活服务器实例。
在左侧菜单中的“监视”部分下,选择“故障排除指南”。
导航到页面顶部,你将在其中找到六个选项卡,每个选项卡都代表了一个你可能希望解决的问题。 单击相关选项卡。
选择要分析的时间段。
按照指南提供的分步说明进行操作。 请密切关注故障排除步骤中绘制的图表和数据可视化内容,因为它们可以帮助你识别任何不准确之处或异常。 使用这些信息可以有效地诊断和解决手头的问题。
检索查询存储收集的查询的文本
出于隐私考虑,某些信息(如查询文本和用户名)可能不会显示在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;
后续步骤
- 详细了解如何排查 CPU 利用率过高问题。
- 详细了解高内存利用率问题。
- 详细了解如何排查高 IOPS 利用率问题。
- 详细了解自动清理优化。