Sql-Server

安裝 SQL Server 2016 sp2 期間失敗

  • September 27, 2018

我正在嘗試為 SQL Server 2016 安裝新的 SP2,但它在安裝過程中失敗並出現引擎錯誤。這是我可以在錯誤日誌中看到的>

錯誤:468,嚴重性:16,狀態:9。

無法解決等於操作中“Latin1_General_CI_AS”和“SQL_Latin1_General_CP1_CI_AS”之間的排序規則衝突。
失敗的一批 t-sql 語句:

CREATE PROCEDURE sp_sqlagent_get_perf_counters @all_counters BIT = 0 AS BEGIN …

錯誤:912,嚴重性:21,狀態:2。

數據庫“master”的腳本級別升級失敗,因為升級步驟“msdb110_upgrade.sql”遇到錯誤 200,狀態 7,嚴重性 25。這是一個嚴重的錯誤情況,可能會干擾正常操作,數據庫將離線。如果在升級“主”數據庫期間發生錯誤,它將阻止整個 SQL Server 實例啟動。檢查以前的錯誤日誌條目是否有錯誤,採取適當的糾正措施並重新啟動數據庫,以便腳本升級步驟執行完成。

錯誤:3417,嚴重性:21,狀態:3。

無法恢復主數據庫。SQL Server 無法執行。從完整備份中恢復 master、修復它或重建它。有關如何重建 master 數據庫的詳細資訊,請參閱 SQL Server 聯機叢書。

SQL Server 關閉已啟動

主數據庫執行“Latin1_General_CI_AS”,MSDB(和其他數據庫)執行“SQL_Latin1_General_CP1_CI_AS”。

我有伺服器上所有數據庫的新備份,包括 master 和 msdb。

我很想嘗試恢復主 master,如https://docs.microsoft.com/en-us/sql/relational-databases/backup-restore/restore-the-master-database-transact-sql 中所示?視圖=sql-server-2017

但我正在努力確保它能夠真正發揮作用,而不僅僅是讓情況變得更糟。

如何讓我的 SQL Server 備份並執行?

編輯:我已經像這樣啟動了 mssqlserver 服務:

NET START MSSQLSERVER /T902

這使伺服器啟動,我查看了 msdb110_upgrade.sql,發現我添加了很多缺少的“COLLATE DATABASE_DEFAULT”。

但它沒有接受我的改變。

我在舊版本的其他版本的 SQL Server 上看到了這個錯誤。

在我的情況下,它是由角色的所有者或模式不是預設值引起的:像 db_datareader 這樣的東西是由使用者帳戶授權的(他們不再擁有系統管理員)

如何恢復?

  • 無法還原 master,因為 master 數據庫版本低於二進製文件版本
  • 使用正確的版本創建了一個新安裝以使其執行,然後將 master 恢復到該版本,然後將 master mdf 複製回原始安裝。

不幸的是,我現在不記得確切的細節了。

這是我使用 SQL Server 20 年來唯一一次…

  • 看到服務包安裝失敗,導致 SQL Server 停止執行
  • 必須在恢復 master 時處理版本不匹配

引用自:https://dba.stackexchange.com/questions/205010