使用资源运行状况排查 Azure SQL 数据库的连接问题

适用于:Azure SQL 数据库

适用于 Azure SQL 数据库的资源运行状况可以帮助你在 Azure 问题影响到资源时进行诊断和获取支持。 它通知你有关资源的当前和过去运行状况的信息,并帮助你缓解问题。 在需要有关 Azure 服务问题的帮助时,资源运行状况页会提供技术支持。

Azure 门户的屏幕截图,其中显示了 Azure SQL 数据库的资源运行状况页。

运行状况检查

资源运行状况通过检查资源登录的成功与失败状态来确定 SQL 数据库的运行状况。 目前,适用于 SQL 数据库资源的资源运行状况只会检查系统错误(而不是用户错误)导致的登录失败。 运行状况的状态每隔 1 - 2 分钟更新一次。

健康状况

可用

可用”状态表示“资源运行状况”未检测到由于 SQL 数据库上的系统错误造成的登录失败,或虽然有一些登录失败,但都不没有达到警报阈值。 以下各节提供了有关警报阈值的更多详细信息。

Azure 门户的屏幕截图,其中显示了“可用”的状态消息。

已降级

已降级”状态表示在过去三分钟的任意两分钟里检测到了“资源运行状况”。

  • 大多数登录都成功了,但也有超过一次登录失败(由于系统错误),或
  • 超过一次登录失败(由于系统错误),但登录尝试总次数不超过 6 次。

这些问题很有可能是暂时性登录错误。 若要减轻暂时性登录错误导致的连接问题所造成的影响,请在代码中实施重试逻辑

Azure 门户的屏幕截图,其中显示了“已降级”的状态消息。

不可用

不可用”状态表示“资源运行状况”在过去一分钟里检测到超过 5 次登录尝试,其中超过四分之一的尝试出于系统原因而失败。 如果资源长时间保持此状态,请与 Azure 支持人员联系。

Azure 门户的屏幕截图,其中显示了“不可用”的状态消息。

未知

运行状况为未知指示资源运行状况未收到此资源的相关信息已超过 10 分钟。 尽管此状态不是资源状态的最终指示,但它是故障排除过程中一个重要的数据点。 如果资源正在按预期方式运行,资源状态会在几分钟后更改为“可用”。 如果资源遇到问题,“未知”运行状态可能暗示平台中的事件正在影响资源。

Azure 门户的屏幕截图,其中显示了“未知”的状态消息。

警报时间

资源运行状况”警报显示的时间与触发警报的登录失败的时间不匹配。 这是因为需要几分钟时间来收集和分析遥测,才能确定存在“资源运行状况”问题。 因此,“资源运行状况”警报中指示的时间会比登录失败的时间晚几分钟。

此外,发生登录失败时的时间间隔通常会比资源运行状况警报里的时间间隔要短。

历史信息

可在资源运行状况运行状况历史记录部分中访问最多 30 天的运行状况历史记录。 该部分还包含停机原因(如果可用)。 目前,Azure 以两分钟粒度显示数据库资源的停机时间。 实际停机时间可能小于一分钟。 平均为 8 秒。

停机原因

如果数据库遇到停机,将执行分析来确定原因。 在适当的情况下,资源运行状况运行状况历史记录部分会报告停机原因。 停机原因通常在发生某个事件后的 45 分钟内发布。

选择维护时段

可以配置维护时段,使具有影响的维护事件可预测,并减少对工作负载的干扰。 维护时段功能可帮助规划可预测的升级或计划性维护。 提前通知可用于配置为使用非默认维护时段的数据库。 使用提前通知,客户可以将通知配置为最多在发生任何计划事件前的 24 小时内发送。

计划内维护

Azure 基础结构定期执行计划内维护 - 升级数据中心内的硬件或软件组件。 在数据库接受维护期间,Azure SQL 可以终止某些现有连接并拒绝新连接。 在计划内维护期间出现的登录失败通常是暂时性的,重试逻辑以查找偶尔出现的网络错误可帮助减轻影响。 如果持续遇到登录错误,请与支持人员联系。

重新配置

重新配置被视为暂时性状态,预期会不时地发生。 这些事件可能是负载均衡或软件/硬件故障触发的。 连接到云数据库的任何客户端生产应用程序应该实施可靠的连接重试逻辑以查找暂时性错误,因为此逻辑有助于缓解这些情况,并且可让最终用户清晰地看到错误。