Azure 虛擬機器中 SQL Server 的自動修補
自動修補會針對執行 SQL Server 的 Azure 虛擬機器建立維護時間範圍。 自動更新只能在此維護時間範圍內安裝。 對 SQL Server 來說,這項限制可確保系統更新及任何關聯的重新啟動都會在對資料庫而言最佳的時機發生。
重要
- 自動修補功能將會淘汰。 目前已排定 2027 年 9 月 17 日 若要避免服務中斷,請在此日期之前移轉至 Azure 更新管理員。 避免在新環境中自動修補。 針對現有的環境,請儘快移轉至 Azure 更新管理員,以繼續接收 Azure VM 上 SQL Server 修補功能的未來增強功能。
- 透過自動修補,僅安裝標示為 [重要] 或 [嚴重] 的 Windows 和 SQL Server 更新。 其他 SQL Server 更新 (例如,未標示為重要或嚴重的 Service Pack 和累積更新) 則必須手動安裝。 若要自動安裝累積更新,使用整合式 Azure 更新管理員體驗。
必要條件
若要使用自動修補,您需要下列必要條件:
- 自動修補相依於 SQL Server IaaS 代理程式擴充。 目前的 SQL 虛擬機器資源庫映像預設會新增這項擴充。 如需詳細資訊,請檢閱 SQL Server IaaS Agent 擴充功能。
- 若您要使用 PowerShell 設定自動修補功能,請安裝最新的 Azure PowerShell 命令。
自 Windows Server 2012 上的 SQL Server 2012 開始,支援自動修補。
此外,請考慮下列作業:
- 另外還有其他幾種啟用 Azure VM 的自動修補,例如更新管理或自動 VM 來賓修補。 請僅選擇一個選項來自動更新您的 VM,因為重疊的工具可能導致更新失敗。
- 如果您想要在未使用自動修補功能的情況下接收 ESU 更新,可以使用內建的 Windows Update 通道。
- 針對參與 Always On 可用性群組中不同可用性區域的 SQL Server VM,請設定自動化修補排程,讓不同可用性區域中的可用性複本不會同時修補。
設定
下表說明可以為自動修補設定的選項。 實際的設定步驟會依據您是使用 Azure 入口網站或 Azure Windows PowerShell 命令而有所不同。
設定 | 可能值 | 描述 |
---|---|---|
自動修補 | 啟用/停用 (已停用) | 啟用或停用 Azure 虛擬機器的自動修補。 |
維護排程 | 每天、星期一、星期二、星期三、星期四、星期五、星期六、星期日 | 虛擬機器的 Windows、SQL Server 和 Microsoft 更新的下載及安裝排程。 |
維護開始時間 | 0-24 | 更新虛擬機器的當地開始時間。 |
維護時間範圍 | 30-180 | 允許完成下載和安裝更新的分鐘數。 |
PATCH 類別 | 重要事項 | 要下載並安裝之 Windows 更新的類別。 |
在 Azure 入口網站中設定
您可以在佈建期間或針對現有的 VM,使用 Azure 入口網站來設定「自動修補」。
新的 VM
在 Resource Manager 部署模型中建立新的「SQL Server 虛擬機器」時,請使用 Azure 入口網站來設定「自動修補」。
在 [SQL Server 設定] 索引標籤上,選取 [自動修補] 底下的 [變更設定]。 下列的 Azure 入口網站螢幕擷取畫面顯示 [SQL 自動修補] 窗格。
如需詳細資訊,請參閱在 Azure 上佈建 SQL Server 虛擬機器。
現有的 VM
針對現有的 SQL Server 虛擬機器,請開啟 SQL 虛擬機器資源,然後選取 [設定] 下的 [更新]。
如果您從未在入口網站中啟用任何 SQL Server VM 的 Azure 更新管理員體驗,則選取 [啟用] 來啟用現有 SQL Server VM 的自動修補。
如果您之前使用過 Azure 更新管理員,則必須前往 SQL 虛擬機器資源中 [設定] 下的 [更新] 頁面,然後選擇 [離開新體驗] 以返回 [自動修補] 體驗:
啟用自動修補並設定修補設定之後,選取 [更新] 頁面底部的 [確定] 按鈕以儲存變更。
如果這是您第一次啟用「自動修補」,Azure 就會在背景中設定 SQL Server IaaS Agent。 在此期間,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 可用性群組,則同時套用修補程式時,可能會重新啟動這兩個節點,因此請務必針對每個節點設定不同的日期/時間修補排程。
從自動修補移轉至 Azure 更新管理員
Azure 更新管理員是一項整合服務,可協助您大規模管理及控管所有虛擬機器與 SQL Server 執行個體更新。 與自動修補不同,Azure 更新管理員會安裝 SQL Server 的累積更新。 建議只使用一個自動化修補服務來管理 SQL Server VM 的更新。
如果您目前使用自動修補,則可以移轉至 Azure 更新管理員
下一步
如需有關其他可用之自動化工作的資訊,請參閱 SQL Server IaaS 代理程式擴充功能。
如需在 Azure VM 上執行 SQL Server 的詳細資訊,請參閱 Azure 虛擬機器上的 SQL Server 概觀。