安全更新失敗:未安裝基準 msi
昨天我們必須為 SQL Server 2008 SP4(目前版本:10.0.6000.29)(來自KB3045311和MS15-058)應用安全更新,它在 Windows 故障轉移群集的兩個節點中都失敗了,並且兩個節點都是相同的版本. 日誌文件只說:
2015-10-21 02:26:29 Slp:更新檔 ID KB3045311_sql_engine_core_inst_Cpu64 - 未安裝在基線 msi 包 sql_engine_core_inst_Cpu64 上。該更新檔包詳細說明為:PatchId=KB3045311_sql_engine_core_inst_Cpu64 PatchVersion=10.4.6241.0 BaselinePackageId=sql_engine_core_inst_Cpu64 BaselineVersion=10.4.6000.29;PatchFileName=sql_engine_core_inst.msp PatchCode={511E22C9-E550-4C68-994B-AA3F388A4E2F}
2015-10-21 02:26:29 Slp:更新檔 ID:KB3045311_sql_engine_core_inst_Cpu32 - 未安裝基線 msi。更新檔包被忽略。
$$ …many more of these for different patchIds and clsids… $$
應用程序事件日誌有:
產品:無法安裝 Microsoft SQL Server 2008 數據庫引擎服務 - 更新“{511E22C9-E550-4C68-994B-AA3F388A4E2F}”。錯誤程式碼 1642。
但是,SQL Server 2012 的安全更新確實順利完成,同時也完成了。
關於 SQL Server 2008 SP4 安全更新為何失敗的任何想法?
從摘要日誌中的錯誤消息來看,似乎找不到基線 MSI(可能是因為您清理了
C:\Windows\Installer
?)。我會建議:
編輯:我對此進行了進一步審查,導致此問題的另一個原因是 Windows Installer 記憶體。在查找使用更新 GUID 複製到 Windows 目錄中的 msi/msp 包的副本時,這似乎會產生“找不到文件”錯誤。我們在這裡沒有看到,但我認為這是因為我們沒有看到 KB 的實際日誌文件。Aaron 的觀點很好繞過 Windows 更新,但如果這不起作用,還要檢查是否所有內容都實際存在於它應該存在的位置。在此處查看此問題的解決方案。同樣,當我們可以獲得實際日誌時,我們會知道得更好。
這在 MS SQL Server 的早期版本中出現過幾次。 該部落格展示了一種實際排除故障和解決問題的好方法。他從另一個節點複製 exe 並將其替換到 binn 文件夾中然後重新啟動的解決方案對我來說似乎太難了。我喜歡只重新安裝以前的 SP 的 SQLGuru 建議。這可能會給你一些好的結果。
此問題可能是由多個問題引起的,例如使用錯誤的更新檔(x64 與 x32、錯誤的 sp cu 等)和其他情況,例如列出的 exe 版本無論出於何種原因與預期不符的情況,或者在系統資料庫中找不到該更新檔的條目,或者天知道還有什麼。我不。
真正了解根本問題的最佳方法是查看該特定 KB 的日誌文件。它應該與您粘貼的其他日誌文件位於同一部分。從那裡你應該能夠注意到實際的更新檔是錯誤的還是亂序的,如果你只需要重新安裝之前的 SP 然後重試,或者如果還有另一個錯誤你需要解決。這些的實際日誌應該命名為 sqlversion_KB#.log