使用维护时段功能,可以针对 Azure SQL Database 和 Azure SQL Managed Instance 资源配置维护计划,从而可预测且对工作负荷造成影响较小的维护事件。
注意
维护时段功能仅防范因升级或计划性维护产生的计划内影响。 它不能保护免受所有故障转移原因影响;可能在维护时段之外导致短暂连接中断的异常包括硬件故障、群集负载均衡和数据库重新配置,这些异常是由于数据库服务级别目标变化等事件引起的。
提前通知适用于配置为使用非默认的维护窗口的数据库。 使用提前通知,客户可以将通知配置为最多在发生任何计划事件前的 24 小时内发送。
概述
Azure定期执行 SQL 数据库资源的计划维护。 在维护事件期间,数据库完全可用,但可能在 SQL 数据库的可用性服务级别协议 (SLA) 中发生短暂的重新配置。
维护时段适用于那些无法适应数据库重新配置的生产工作负载,并且无法承受计划维护事件导致的短暂连接中断。 通过选择喜欢的维护时段,可以通过将计划内维护计划安排在高峰营业时间外发生,最大程度地减少计划内维护的影响。 可复原的工作负荷和非生产工作负荷可以依赖于Azure SQL的默认维护策略。
维护时段免费提供,并可在创建时或针对现有资源进行配置。 可以使用 Azure 门户、PowerShell、CLI 或 Azure API 对其进行配置。
重要
配置维护时段是一个长时间运行的异步操作,类似于更改 Azure SQL 资源的服务层。 该资源在操作过程中可用,只在操作结束时会发生短暂的重新配置,即使在长期运行的事务中断的情况下,通常最多也仅持续 8 秒。 若要将重新配置的影响降至最低,应在高峰时段之外执行操作。
通过维护时段提高可预测性
默认情况下,Azure SQL维护策略在每天8AM到下午 5 点期间阻止影响最大的更新以避免在典型的高峰时段发生任何中断。 本地时间由托管资源的 Azure 区域 的位置决定,并可能根据本地时区的定义调整为夏令时。
维护期间,数据库仍然可用,但一些更新可能需要故障转移。 系统默认维护时段(下午 5 点到上午 8 点)将大多数活动限制到该时段,但紧急更新可能会超出该时段。 若要确保所有更新仅在维护时段内发生,请选择非默认选项。
可以通过从两个非默认维护时段槽中进行选择,将维护更新的时段调整为适合Azure SQL资源的时间:
- 工作日时段:本地时间晚上 10 点到早上 6 点,星期一到星期四
- 周末时段:本地时间晚上 10 点到早上 6 点,星期五到星期日
列出的维护时段所在日子表示每个 8 小时维护时段的开始日期。 例如,“本地时间晚上 10 点到早上 6 点,星期一到星期四”表示维护时段从本地时间(星期一到星期四的)每天晚上 10:00 开始,并在本地时间(星期一到星期四的)早上 6:00 结束。
选择维护时段并完成服务配置后,计划内维护仅在所选的时段中进行。 维护事件通常是在单个时段内完成,但其中某些事件可能会跨越两个或更多相邻时段。
注意
Azure SQL Database遵循安全部署做法,确保Azure配对区域不能同时部署到其中。 但是,无法预测将首先升级哪个区域,因此无法保证部署顺序。 有时会先升级主数据库,有时会升级辅助数据库。
- 在数据库启用 异地复制或故障转移组的情况下,如果异地复制未与Azure 区域配对对齐,您应为主数据库和辅助数据库制定不同的维护窗口计划。 例如,可以为异地辅助数据库选择“工作日”维护时段,为异地主数据库选择“周末”维护时段。
重要
在极少数情况下,任何推迟行动都可能导致严重影响,例如应用关键安全修补程序时,配置的维护时段可能会被暂时覆盖。
提前通知
可以将维护通知配置为提醒你即将发生的Azure SQL Database计划内维护事件。 警报会在维护时段打开前 24 小时以及维护时段结束时到达。 有关详细信息,请参阅提前通知。
功能可用性
支持的订阅类型
配置和使用维护时段适用于以下 产品类型:按需付费、云解决方案提供商 (CSP)、Microsoft 企业协议或 Microsoft 客户协议。
仅限开发/测试使用的套餐不符合条件(例如即用即付开发/测试或企业开发/测试)。
注意
Azure套餐是你拥有的Azure订阅的类型。 例如,按需支付费率、开放Azure和Visual Studio Enterprise的订阅都是Azure产品/服务。 每个套餐和计划都有不同的条款和权益。 你的套餐或计划显示在订阅的“概述”上。 有关将订阅切换到其他产品/服务的详细信息,请参阅 将Azure订阅更改为其他产品/服务。
受支持的服务级别目标
其他所有 SLO 都可以选择非默认的维护时段,除以下情况外。
- 不支持 SLO:
- Azure SQL Database DTU 基本层、S0 层和 S1 层
- DC 硬件
- Fsv2 硬件
其他方案:
- 超大规模弹性池的维护时段处于预览状态,并在特定区域和配置中可用。 有关详细信息,请参阅 博客:Azure SQL Database 超大规模弹性池的维护窗口支持 和 按区域提供的 Azure SQL Database 功能可用性。
- 命名副本支持维护时段。
Azure SQL Database区域对维护时段的支持
如需详细信息,请参阅 Azure SQL 数据库各地区功能可用性。
网关维护
若要从维护时段获得最大优势,请确保客户端应用程序使用的是重定向连接策略。 重定向是推荐的连接策略,其中客户端直接与托管数据库的节点建立连接,从而降低延迟并改进吞吐量。
在Azure SQL Database中,使用代理连接策略的任何连接都可能会受到所选维护时段和网关节点维护时段的影响。 但是,使用推荐的重定向连接策略的客户端连接不受网关节点维护重新配置的影响。
有关Azure SQL Database中的客户端连接策略的详细信息,请参阅 Azure SQL Database 连接策略。
检索维护事件列表
Azure Resource Graph是一项Azure服务,旨在扩展Azure资源管理。 Azure Resource Graph资源管理器提供高效且高性能的资源探索,能够大规模地跨一组给定的订阅进行查询,以便你能够有效地管理环境。
可以使用Azure Resource Graph资源管理器查询维护事件。 有关如何运行这些查询的简介,请参阅 Quickstart:使用 Azure Resource Graph Explorer 运行第一个 Resource Graph 查询。
若要检查订阅中所有 SQL 数据库的维护事件,请在Azure Resource Graph资源管理器中使用以下示例查询:
servicehealthresources
| where type =~ 'Microsoft.ResourceHealth/events'
| extend impact = properties.Impact
| extend impactedService = parse_json(impact[0]).ImpactedService
| where impactedService =~ 'SQL Database'
| extend eventType = properties.EventType, status = properties.Status, description = properties.Title, trackingId = properties.TrackingId, summary = properties.Summary, priority = properties.Priority, impactStartTime = todatetime(tolong(properties.ImpactStartTime)), impactMitigationTime = todatetime(tolong(properties.ImpactMitigationTime))
| where eventType == 'PlannedMaintenance'
| order by impactStartTime desc
有关示例查询的完整参考,以及如何在 PowerShell 或 Azure CLI 等工具中使用这些查询,请访问 适用于 Azure Service Health 的 Azure Resource Graph 示例查询。
相关内容
- 配置维护时段
- 计划内维护事件的提前通知
- 维护时段常见问题解答
- Azure SQL Database
规划Azure SQL Database和Azure SQL Managed Instance中的Azure维护事件