适用于 Azure 虚拟机上 SQL Server 的自动修补
自动修补将为运行 SQL Server 的 Azure 虚拟机建立一个维护时段。 只能在此维护时段内安装自动更新。 对于 SQL Server,此限制可以确保在数据库的最佳可能时间发生系统更新和任何关联的重新启动。
重要
仅安装标记为“重要”或“关键”的 Windows 和 SQL Server 更新 。 其他 SQL Server 更新(如未标记为“重要”或“关键”的服务包和累积更新)则必须手动安装 。
先决条件
若要使用自动修补,需要考虑以下先决条件:
- 自动修补依赖 SQL Server IaaS 代理扩展。 当前的 SQL 虚拟机库映像默认添加此扩展。
- 如果打算使用 PowerShell 配置自动修补,请安装最新的 Azure PowerShell 命令。
从 SQL Server 2012 开始,Windows Server 2012 上支持自动修补。
此外,请注意以下几点:
- 还有另外几种方法可用于启用 Azure VM 自动修补,例如更新管理。 只能选择其中一个选项来自动更新 VM,因为工具重叠可能会导致更新失败。
- 如果要在不使用自动修补功能的情况下接收 ESU 更新,可以使用内置的 Windows 更新通道。
- 对于参与 Always On 可用性组的不同可用性区域中的 SQL Server VM,请配置自动修补计划,以使不同可用性区域中的可用性副本不会同时进行修补。
设置
下表描述了可为自动修补配置的选项。 实际配置步骤根据你使用的是 Azure 门户还是 Azure Windows PowerShell 命令而有所不同。
设置 | 可能值 | 说明 |
---|---|---|
自动修补 | 启用/禁用(已禁用) | 为 Azure 虚拟机启用或禁用自动修补。 |
维护计划 | 每天、星期一、星期二、星期三、星期四、星期五、星期六、星期日 | 为虚拟机下载和安装 Windows、SQL Server 和 Azure 更新的计划。 |
维护开始时间 | 0-24 | 更新虚拟机的本地开始时间。 |
维护时段持续时间 | 30-180 | 允许完成更新下载和安装的分钟数。 |
修补程序类别 | 重要 | 要下载并安装的 Windows 更新类别。 |
在 Azure 门户中配置
可以在预配期间或针对现有的 VM,使用 Azure 门户配置自动修补。
新的 VM
在资源管理器部署模型中创建新的 SQL Server 虚拟机时,可以使用 Azure 门户配置自动修补。
在“SQL Server 设置”选项卡中,选择“自动修补”下的“更改配置”。 下面的 Azure 门户屏幕截图显示了“SQL 自动修补”窗格。
有关详细信息,请参阅在 Azure 上预配 SQL Server 虚拟机。
现有 VM
对于现有的 SQL Server 虚拟机,请打开 SQL 虚拟机资源并在“设置”下选择“更新”。
完成后,选择“SQL Server 配置”边栏选项卡底部的“确定”按钮保存更改。
首次启用自动修补时,Azure 会在后台配置 SQL Server IaaS 代理。 在此期间,Azure 门户可能不会显示已配置自动修补。 请等待几分钟,以便安装和配置代理。 随后,Azure 门户将反映新设置。
使用 PowerShell 配置
预配 SQL VM 后,使用 PowerShell 配置自动修补。
以下示例使用 PowerShell 在现有的 SQL Server VM 上配置自动修补。 New-AzVMSqlServerAutoPatchingConfig 命令可为自动更新配置新的维护时段。
Update-AzSqlVM -ResourceGroupName 'resourcegroupname' -Name 'vmname' `
-AutoPatchingSettingDayOfWeek Thursday `
-AutoPatchingSettingMaintenanceWindowDuration 120 `
-AutoPatchingSettingMaintenanceWindowStartingHour 11 `
-AutoPatchingSettingEnable
下表根据此示例描述了对目标 Azure VM 产生的实际效果:
参数 | 效果 |
---|---|
AutoPatchingSettingDayOfWeek | 每个星期四安装修补程序。 |
AutoPatchingSettingMaintenanceWindowDuration | 必须在 120 分钟内完成修补程序安装。 根据开始时间,修补必须在下午 1:00 之前完成。 |
AutoPatchingSettingMaintenanceWindowStartingHour | 在上午 11:00 开始更新。 |
AutoPatchingSettingEnable | 启用自动修补 |
可能需要花费几分钟来安装和配置 SQL Server IaaS 代理。
若要禁用自动修补,请运行以下脚本,并将 -AutoPatchingSettingEnable 上的值设置为 $false。
Update-AzSqlVM -ResourceGroupName 'resourcegroupname' -Name 'vmname' -AutoPatchingSettingEnable:$false
了解使用自动修补将会应用哪些更新
若要了解通过自动修补将会应用哪些更新,请查看更新指南并应用严重性筛选器来识别关键更新和重要更新。
注意事项
考虑以下情况:
- 自动修补不知道 SQL Server VM 的 Always On 可用性组配置,因此在为可用性组副本创建修补计划时要格外小心,以避免意外故障转移。
- 如果 SQL Server VM 位于可用性集中,并且已配置 Always On 可用性组,则当同时应用修补程序时,可能会重新启动这两个节点,因此重要的是为每个节点设置不同的日期/时间修补计划。
后续步骤
有关其他可用自动化任务的信息,请参阅 SQL Server IaaS 代理扩展。
有关在 Azure VM 上运行 SQL Server 的详细信息,请参阅 Azure 虚拟机上的 SQL Server 概述。