針對常見的 SQL Server 累積更新安裝問題進行疑難解答
本文提供一般步驟,針對將累積更新 (CU) 或 Service Pack (SP) 套用至您的 Microsoft SQL Server 實例時可能會遇到的問題進行疑難解答。 它也提供如何解決下列錯誤訊息或條件的資訊:
Wait on Database Engine recovery handle failed
當您執行升級腳本時,訊息和錯誤 912 和 3417 。- 因為 Windows Installer 快取中遺漏 MSI 或 MSP 檔案而發生的安裝程序錯誤。
The Database Engine system data directory in the registry is not valid
或the User Log directory in the registry is not valid
訊息。Network path was not found
如果 AlwaysOn 故障轉移叢集實例 (FCI) 或 AlwaysOn 可用性群組上停用遠端登錄服務或系統管理員共用,您會收到的其他錯誤訊息。
累積更新和 Service Pack 安裝資訊
本節提供 CU 和 SP 安裝的相關信息。
針對 Microsoft SQL Server 2016 和舊版:
- 安裝 CU 之前,請確定您的 SQL Server 實例位於該 CU 的正確 SP 層級。 例如,在針對 SQL Server 2016 實例套用 SP2 之前,您無法針對 SQL 2016 SP2 套用 CU17。
- 您一律可以針對指定的SP基準套用最新的 CU,而不需要針對該 Service Pack 套用先前的 CU。 例如,若要針對 SQL Server 2016 SP2 實例套用 CU17,您可以略過將先前的更新套用至 CU14、CU15 和 CU16,如果未安裝,則直接套用 CU17。
針對 Microsoft SQL Server 2017 和更新版本,您一律可以套用可用的最新 CU。 (SQL Server 2017 和更新版本沒有 Service Pack。
套用 CU 或 SP 之前,請確定您正在更新的實體已正確安裝。 SQL Server 程式檔和資料檔無法安裝於:
- 卸載式磁碟驅動器。
- 使用壓縮的文件系統。
- 系統檔案所在的目錄。
- 故障轉移叢集實例上的共用磁碟驅動器。
如果您在將 CU 或 SP 套用至實例之後新增 資料庫引擎功能 ,您應該先將新功能更新為與程序實例相同的層級,再套用任何新的 CU 或 SP。
一般疑難排解方法
請遵循下列步驟來隔離錯誤:
- 從安裝程式的 [失敗] 畫面選取 [詳細數據]。
- 在 %programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Log 資料夾中,檢查 [已探索到的產品功能] 區段底下Summary.txt,以判斷列出的任何功能是否報告失敗。 如果這樣做,您可以專注於解決影響該功能的問題。
- 移至名為 yyyyMMdd_HHmmss 的子資料夾(例如 20220618_174947),其對應到您關注的回報失敗時間。 目標是視需要檢查功能特定的檔案、ERRORLOG 檔案和 Details.txt 檔案。
- 移至 \MSSQLSERVER 子資料夾,並找出失敗功能特有的記錄檔。 例如, sql_engine_core_inst_Cpu64_1.log。 如需升級腳本失敗,請檢查 對應至升級失敗時間的SQLServer_ERRORLOG_date_time.txt 檔案。
- 開啟Details.txt記錄檔,然後搜尋關鍵詞 「Failed」。並非每個失敗都被視為關鍵。
如需詳細資訊,請參閱< View and Read SQL Server Setup Log Files>。
在接下來的幾節中,檢查是否有對應至您情況的案例,然後遵循相關聯的疑難解答步驟。 如果沒有相符的案例,請在記錄檔中尋找更多指標。
錯誤 912 和 3417 和「等候 資料庫引擎 復原句柄失敗」
T-SQL 升級腳本會隨附於每個 SQL Server 累積更新。 它們會在 SQL Server 二進位檔取代為最新版本之後執行。 如果這些 T-SQL 腳本因為某些原因而未執行,安裝程式會回報「等候 資料庫引擎 復原句柄失敗」錯誤。 安裝程式會在最新的 SQL Server 錯誤記錄檔中記錄錯誤 912 和 3417 。 錯誤 912 和 3417 分別與資料庫腳本升級失敗和無法復原 master
資料庫相關聯。 錯誤 912 之前的訊息通常會提供執行升級腳本時發生失敗的根本原因相關信息。
可能會與 912 和 3417 一起引發各種錯誤。 如需常見案例和相關解決方案摘要的詳細資訊,請參閱 針對套用更新時的升級腳本失敗進行疑難解答。
Windows 快取中遺漏安裝程式檔案所造成的安裝錯誤
針對安裝程式使用 Windows Installer 技術的 SQL Server 之類的應用程式,會將重要檔案儲存在 Windows Installer 快取中。 默認安裝程式快取位置為 C:\Windows\Installer。 卸載和更新應用程式需要這些檔案。 它們對該計算機而言是唯一的。 如果應用程式意外刪除或遭到入侵,則相依於這些檔案的應用程式更新將無法運作。 若要解決此狀況,請使用下列其中一種方法,如還原遺失的 Windows Installer 快取檔案中所述:
- 修復 SQL Server 安裝。
- 使用 FixMissingMSI 工具。
- 使用 FindSQLInstalls.vbs 腳本。
- 手動還原檔案。
- 從系統狀態備份還原檔案。
- 檢閱並實作還原遺失的 Windows Installer 快取檔案中所述的程式。
安裝程式因為登錄中的數據或記錄位置不正確而失敗
當您安裝 CU 或 SP 時,如果預設資料和記錄資料夾無效,您可能會收到類似下列訊息的錯誤:
「登錄中的用戶資料目錄無效。 確認實例 Hive 底下的 DefaultData 金鑰指向有效的目錄。」
「登錄中的用戶記錄目錄無效。 確認實例 Hive 下的 DefaultLog 機碼指向有效的目錄。」
「安裝 SQL Server 資料庫引擎 Services 實例功能時發生錯誤。 登錄中的 資料庫引擎 系統數據目錄無效。
若要修正此問題,請依照下列步驟操作:
- 使用 SQL Server Management Studio (SSMS) 連接到 SQL Server 實例。
- 以滑鼠右鍵按兩下 物件總管中的 SQL Server 實例,然後選取 [屬性>資料庫設定]。
- 在 [資料庫預設位置] 下,確定 [數據和記錄] 中的資料夾正確無誤。
- 在 SQL Server 組態管理員 中,選取 [SQL Server 服務],按兩下受影響的 SQL Server 服務,選取 [進階] 索引卷標,並確定 [數據路徑] 的值正確。 值呈現灰色,無法修改。 不過,如果您想要更正它,請在安裝 SQL Server 累積更新或 Service Pack 以修改 SQLDataRoot 登錄專案時,遵循錯誤中的方法 2,指出登錄中的數據或記錄檔目錄無效。
- 重試 CU 或 SP 安裝。
設定錯誤的 Windows Server 容錯移轉叢集 (WSFC) 節點
若要順利運作和維護 SQL Server 故障轉移叢集實例 (FCI),請遵循安裝故障轉移叢集和故障轉移叢集實例管理與維護之前所述的最佳做法。 如果您在套用 CU 或 SP 時遇到錯誤,請檢查下列條件:
- 請確定遠端登錄服務為作用中,並在 WSFC 叢集的所有節點上執行。
- 如果 SQL Server 的服務帳戶不是 Windows 叢集中的系統管理員,請確定所有節點上都已啟用系統管理共用(C$ 等等)。 如需詳細資訊,請參閱 遺漏系統管理共用時可能發生的問題概觀。 如果這些共用未正確設定,當您嘗試安裝 CU 或 SP 時,您可能會注意到下列一或多個徵兆:
- 更新需要很長的時間才能執行或沒有回應。 安裝記錄不會顯示任何進度。
- 安裝程式記錄包含如下的訊息:
The network path was not found.
System.UnauthorizedAccessException: Attempted to perform an unauthorized operation.
其他資訊
- 如需 SQL Server 版本和下載位置目前可用更新的完整清單,請參閱 判斷版本、版本和更新層級 - SQL Server。
- 如需 SQL Server 版本支援和維護時程表的詳細資訊,請參閱 產品生命週期頁面Microsoft。
- 如需不同 SQL Server 版本維護模型的相關信息,請參閱 SQL Server 更新 的增量維護模型和 SQL 2017 和更新版本的新式服務模型。
- 如需如何更新 SQL Server 的一般資訊,請參閱 安裝 SQL Server 服務更新。
- 如需 SQL Server 和其他產品的安全性更新相關信息,請參閱 安全性更新指南。
- 如需與Microsoft更新相關聯之標準術語的相關信息,請參閱 描述用來描述Microsoft軟體更新的標準術語。
- 若要解決在高度安全的環境中可能發生的安裝程序問題,如果安裝程式帳戶沒有特定用戶權力,請參閱 SQL Server 安裝失敗。