MSSQLSERVER_912
適用於: SQL Server 2019 (15.x) 與更新版本 - 僅限 Windows
詳細資料
屬性 | 值 |
---|---|
產品名稱 | SQL Server |
事件識別碼 | 912 |
事件來源 | MSSQLSERVER |
元件 | SQLEngine |
符號名稱 | DB_RUNSCRIPTUPGRADE_STEP_FAILED |
訊息文字 | 資料庫 %.*ls' 的腳本層級升級失敗,因為升級步驟 '%.*ls' 發生錯誤 %d,狀態 %d,嚴重性 %d。 此為嚴重的錯誤情形,可能會干擾一般作業,而且資料庫將會離線。 如果在升級 'master' 資料庫期間發生此錯誤,將會使整個 SQL Server 執行個體無法啟動。 請查看先前的錯誤記錄項目是否有錯誤、進行適當的修正動作,並且重新啟動資料庫,使指令碼升級步驟可以執行到完成。 |
說明
錯誤 912 表示無法執行資料庫文本,並將資料庫升級至伺服器所需的最新層級。 這是一般錯誤訊息,其中包含升級腳本失敗的參考,以及失敗腳本遇到的錯誤。
當 SQL Server 升級或套用累積更新時,一開始只會升級二進位檔。 資料庫及其對象維持未修改狀態。 一旦二進位檔取代為新版本,服務會第一次重新啟動,就會啟動資料庫升級。 要執行的升級腳本位於 C:\Program Files\Microsoft SQL Server\MSSQLXX 底下。YYYY\MSSQL\Install。
如果升級程式遇到腳本層級升級錯誤 (錯誤 912),可能會引發其他錯誤。 例如,這些錯誤可能會伴隨錯誤 912,並協助進一步說明失敗:
Error: 1101, Severity: 17, State: 1.
Could not allocate a new page for database 'tempdb' because of insufficient disk space in filegroup 'PRIMARY'. Create the necessary space by dropping objects in the filegroup, adding additional files to the filegroup, or setting autogrowth on for existing files in the filegroup.
Error: 912, Severity: 21, State: 2.
Script level upgrade for database 'master' failed because upgrade step 'xxx.sql' encountered error <Error Number>, state <Error State>, severity <Error Severity>. This is a serious error condition which might interfere with regular operation and the database will be taken offline. If the error happened during upgrade of the 'master' database, it will prevent the entire SQL Server instance from starting. Examine the previous errorlog entries for errors, take the appropriate corrective actions and re-start the database so that the script upgrade steps run to completion.
Error: 3417, Severity: 21, State: 3.
Cannot recover the master database. SQL Server is unable to run. Restore master from a full backup, repair it, or rebuild it. For more information about how to rebuild the master database, see SQL Server Books Online.
通常當安裝程序失敗時,使用者可能會在 GUI 中看到下列錯誤,假設安裝是使用精靈手動完成。 請記住,此錯誤可能會引發各種安裝問題。 但在所有情況下,都會引導您檢查 SQL Server 錯誤記錄檔以取得詳細資訊。
Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
使用者動作
若要找出問題的原因,請遵循下列步驟:
- 找出並開啟 SQL Server Errorlog。
- 檢查記錄檔中錯誤 912 之前發生的錯誤,並著重於針對錯誤 912 傳訊中所參考的錯誤進行疑難解答。
- 對於Microsoft客戶回報的一些常見案例,請參閱「等候 資料庫引擎 復原處理失敗」和「912」和「3417」錯誤
- 在某些情況下,您可能需要使用追蹤旗標 902 啟動 SQL Server 服務(請參閱下列步驟)。 使用 T902 啟動服務可讓服務在啟動期間略過升級腳本的執行。 如此一來,您就有機會調查並修正基礎問題。
- 解決問題之後,請務必移除追蹤旗標,讓安裝程式可以重新啟動升級腳本執行階段。
使用追蹤旗標 902 啟動 SQL Server 的步驟
使用 Configuration Manager
- 啟動 [SQL Server 組態管理員] 。
- 選取 SQL Server Services 中的 SQL Server 實例。
- 在執行個體上按一下滑鼠右鍵,然後選取 [屬性]。
- 選取 [啟動參數] 索引標籤。
- 使用 [ 指定啟動參數 ] 字段來新增追蹤旗標。 輸入 「-T902」 (不含引號),然後按兩下 [ 新增]。
- 選取 [ 確定 ] 並關閉實例屬性。
- 啟動 SQL Server 服務。
如需如何設定啟動選項的詳細資訊,請參閱 SQL Configuration Manager 服務 - 設定伺服器啟動選項
注意
解決問題之後,請務必從組態中移除 -T902。
使用 sqlservr.exe 命令提示字元
以系統管理許可權開啟命令提示字元,並將目錄變更為 SQL Server Binn 目錄,例如 C:\Program Files\Microsoft SQL Server\MSSQLXX。YYYY\MSSQL\Binn。
執行
sqlservr.exe -s <instance> -T902
預設實例:
cd \Program Files\Microsoft SQL Server\MSSQL<version>\MSSQL\Binn sqlservr.exe -s MSSQLSERVER -T902
具名實例,其中 「sql2016」 是實例名稱的範例:
cd \Program Files\Microsoft SQL Server\MSSQL<version>.<instance name>\MSSQL\Binn sqlservr.exe -s sql2016 -T902
若要在完成時停止實例,請按 ,然後按
CTRL+C
,Y
使用 命令提示字元 net start
預設實例:
NET START MSSQLSERVER /T902
具名實例:
NET START MSSQL$INSTANCENAME /T902