本文說明如何為 Azure 虛擬機器 (VM) 上的新 SQL Server 和現有 SQL Server 啟用自動修補。 自動修補會針對執行 SQL Server 的 Azure 虛擬機器建立維護時間範圍。 自動更新只能在此維護時段內安裝。 對 SQL Server 來說,這項限制可確保系統更新及任何關聯的重新啟動都會在對資料庫而言最佳的時機發生。
Important
- 自動修補功能計劃於 2027 年 9 月 17 日淘汰。 若要避免服務中斷,請在此日期之前移轉至 Azure 更新管理員。 避免在新環境中自動化修補。 針對現有的環境,請儘快移轉至 Azure 更新管理員,以繼續接收 Azure VM 上 SQL Server 修補功能的未來增強功能。
- 使用自動修補時,只會安裝標示為 重要 或 嚴重 的 Windows 和 SQL Server 更新。 其他 SQL Server 更新,例如未標示為 重要 或 重大的 Service Pack 和累積更新,必須手動安裝。 若要自動安裝累積更新,使用整合式 Azure 更新管理員體驗。
Prerequisites
若要使用自動修補,您需要下列必要條件:
- 自動修補相依於 SQL Server IaaS 代理程式擴充。 目前的 SQL 虛擬機器資源庫映像預設會新增這項擴充。 如需詳細資訊,請檢閱 SQL Server IaaS Agent 擴充功能。
- 若您要使用 PowerShell 設定自動修補功能,請安裝最新的 Azure PowerShell 命令。
自 Windows Server 2012 上的 SQL Server 2012 開始,支援自動修補。
此外,請考慮以下資訊:
- 還有數種其他方式可啟用 Azure VM 的自動修補,例如 Update Manager 或 自動 VM 客體修補。 只選擇一個選項來自動更新您的 VM,因為重疊的工具可能會導致更新失敗。
- 如果您想要接收 擴充安全性更新 (ESU) 而不使用自動修補功能,您可以使用內建的 Windows Update 通道。
- 針對參與 Always On 可用性群組的不同可用性區域中的 SQL Server VM,請設定自動修補排程,讓不同可用性區域中的可用性複本不會同時修補。
Settings
下表說明可以為自動修補設定的選項。 實際的設定步驟會依據您是使用 Azure 入口網站或 Azure Windows PowerShell 命令而有所不同。
| Setting | 可能的值 | Description |
|---|---|---|
| 自動修補 | 啟用/停用(已停用) | 啟用或停用 Azure 虛擬機器的自動修補。 |
| 維護計劃 | 每天、星期一、星期二、星期三、星期四、星期五、星期六、星期日 | 虛擬機器的 Windows、SQL Server 和 Microsoft 更新的下載及安裝排程。 |
| 維護開始時間 | 0-24 | 更新虛擬機器的當地開始時間。 |
| 維護時間範圍 | 30-180 | 允許完成下載和安裝更新的分鐘數。 |
| 修補程式類別 | Important | 要下載並安裝之 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 的實際效果:
| Parameter | Effect |
|---|---|
| AutoPatchingSettingDayOfWeek | 在每個星期四安裝修補程式。 |
| AutoPatchingSettingMaintenanceWindowDuration | 必須在 120 分鐘內安裝修補程式。 根據開始時間,其必須在下午 1:00 之前完成。 |
| AutoPatchingSettingMaintenanceWindowStartingHour | 在上午 11:00 開始更新。 |
| AutoPatchingSettingEnable | 啟用自動修補 |
可能需要幾分鐘的時間來安裝及設定 SQL Server IaaS 代理程式。
若要停用自動修補,請在 -AutoPatchingSettingEnable 上執行下列指令碼,其值為 $false。
Update-AzSqlVM -ResourceGroupName 'resourcegroupname' -Name 'vmname' -AutoPatchingSettingEnable:$false
瞭解哪些更新將透過自動修補套用
若要瞭解哪些更新將透過自動修補套用,請檢閱 更新指南 並套用嚴重 性 篩選器來識別重要和重要更新。
Considerations
請考慮下列有關自動修補的資訊:
- 自動修補功能無法識別 SQL Server VM 的 Always On 可用性群組配置。 因此,在為可用性群組副本建立修補排程時必須謹慎,避免發生意外的故障轉移。
- 如果您的 SQL Server VM 位於可用性設定組,您也已經設定 Always On 可用性群組,則同時套用修補程式時,可能會重新啟動這兩個節點,因此請務必針對每個節點設定不同的日期/時間修補排程。
- 虛擬機可以在預先定義的維護期間重新啟動。 您可以使用事件檢視器來確認您的虛擬機器在自動修補的維護時段期間重新啟動。 伺服器修補可能會在 維護時段之外重新啟動您的 VM。
- 如果您的更新失敗並出現指出
The user data or log directory is invalid的錯誤訊息,可能是因為資料庫的新資料或日誌檔案的預設位置指向無效位置。 若要解決此問題,請檢視 無效的目錄錯誤。
從自動修補移轉至 Azure 更新管理員
Azure 更新管理員是一項整合服務,可協助您大規模管理及控管所有虛擬機器與 SQL Server 執行個體更新。 與自動修補不同,Azure 更新管理員會安裝 SQL Server 的累積更新。 建議您只使用一個自動修補服務來管理 SQL Server VM 的更新。
如果您目前使用自動修補,您可以 移轉至 Azure 更新管理員。