共用方式為


針對常見 SQL Server 累積更新安裝問題進行疑難解答

本文提供一般步驟,以針對將累積更新 (CU) 或 Service Pack (SP) 套用至 Microsoft SQL Server 實例時可能會遇到的問題進行疑難解答。 它也提供如何解決下列錯誤訊息或條件的資訊:

  • Wait on Database Engine recovery handle failed 當您執行升級腳本時,訊息和錯誤 9123417
  • 因為遺漏 MSI 或 MSP 而發生的安裝錯誤, (Windows Installer 快取中的更新) 檔案。
  • The Database Engine system data directory in the registry is not validthe User Log directory in the registry is not valid 訊息。
  • Network path was not found如果您在FCI) 或 Always On 可用性群組的 Always On故障轉移叢集實例上停用遠端登錄服務或系統管理員共用,則 (會收到其他錯誤訊息。

累積更新和 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。

一般疑難解答方法

依照下列步驟隔離錯誤:

  1. 從安裝程式的 [失敗] 畫面選取 [詳細數據]。
  2. %programfiles%\Microsoft SQL Server\nnn\Setup Bootstrap\Log 資料夾中,檢查 [探索的產品功能] 區段下的Summary.txt,以判斷是否有任何列出的功能報告失敗。 如果是,您可以專注於解決影響該功能的問題。
  3. 移至名為 yyyyMMdd_HHmmss ( 的子資料夾,例如 20220618_174947) ,該子資料夾會對應至您所專注的回報失敗時間。 目標是視需要檢查功能特定檔案、ERRORLOG 檔案和 Details.txt 檔案。
  4. 移至 \MSSQLSERVER 子資料夾,並找出失敗功能特定的記錄檔。 例如, sql_engine_core_inst_Cpu64_1.log。 針對升級腳本失敗,請檢查 對應至 升級失敗時間的SQLServer_ERRORLOG_date_time.txt檔案。
  5. 開啟 Details.txt 記錄檔,然後搜尋關鍵詞 「Failed」。並非每個失敗都視為重大。

如需詳細資訊,請參閱檢視和讀取 SQL Server 設定記錄檔。

在接下來的幾節中,請檢查對應至您情況的案例,然後遵循相關聯的疑難解答步驟。 如果沒有相符的案例,請在記錄檔中尋找更多指標。

錯誤 912 和 3417 和「等候 Database Engine 復原句柄失敗」

T-SQL 升級腳本會隨附於每個 SQL Server 累積更新。 它們會在 SQL Server 二進位檔取代為最新版本之後執行。 如果這些 T-SQL 腳本因為某些原因而未執行,安裝程式會報告「等候 Database Engine 復原句柄失敗」錯誤。 安裝程式會在最新的 SQL Server 錯誤記錄檔中記錄錯誤 9123417。 錯誤 912 和 3417 分別與資料庫腳本升級失敗和復原 master 資料庫失敗相關聯。 錯誤 912 之前的訊息通常會提供執行升級腳本時發生失敗的根本原因相關信息。

可能會引發各種錯誤,以及 912 和 3417。 如需常見案例和相關解決方案摘要的詳細資訊,請參閱 針對套用更新時的升級腳本失敗進行疑難解答

Windows 快取中遺失安裝程式檔案所造成的安裝錯誤

使用 Windows Installer 技術進行安裝程式的 SQL Server 等應用程式會將重要檔案儲存在 Windows Installer 快取中。 默認安裝程式快取位置是 C:\Windows\Installer。 卸載和更新應用程式需要這些檔案。 它們對該計算機而言是唯一的。 匯報 相依於這些檔案的應用程式,如果不小心刪除或遭到入侵,將無法運作。 若要解決此情況,請使用還原 遺漏的 Windows Installer 快取檔案中所述的下列其中一種方法:

安裝程式失敗,因為登錄中的數據或記錄位置不正確

當您安裝 CU 或 SP 時,如果預設資料和記錄資料夾無效,您可能會收到類似下列訊息的錯誤:

「登錄中的用戶資料目錄無效。 確認實例 Hive 下的 DefaultData 金鑰指向有效的目錄。」

「登錄中的用戶記錄目錄無效。 驗證實例登錄區下的DefaultLog金鑰指向有效的目錄。」

「安裝 SQL Server Database Engine Services 實例功能時發生錯誤。 登錄中的Database Engine系統資料目錄無效。」

若要修正此問題,請依照下列步驟執行:

  1. 使用 SQL Server Management Studio (SSMS) 連線到 SQL Server 實例。
  2. 以滑鼠右鍵按兩下 物件總管中的 SQL Server 實例,然後選取 [屬性>資料庫設定]
  3. [資料庫預設位置] 底下,確定 [數據 ] 和 [ 記錄 ] 中的資料夾正確無誤。
  4. 在 SQL Server 組態管理員 中,選取 [SQL Server 服務],按兩下受影響的 [SQL Server 服務],選取 [階] 索引卷標,並確定 [數據路徑] 的值正確無誤。 值呈現灰色,無法修改。 不過,如果您想要更正它,請遵循錯誤中的方法 2:安裝 SQL Server 累積更新或 Service Pack 來修改 SQLDataRoot 登錄專案時,登錄中的數據或記錄目錄無效。
  5. 重試 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.

其他資訊