Share via


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.

upgrade failure in the GUI

使用者動作

若要找出問題的原因,請遵循下列步驟:

  1. 找出並開啟 SQL Server Errorlog
  2. 檢查記錄檔中錯誤 912 之前發生的錯誤,並著重于針對錯誤 912 傳訊中所參考的錯誤進行疑難排解。
  3. 針對 Microsoft 客戶回報的一些常見案例, 請參閱「等候 Database Engine 復原控制碼失敗」和「912」和「3417」錯誤
  4. 在某些情況下,您可能需要使用追蹤旗標 902 啟動 SQL Server 服務 (請參閱下列步驟)。 使用 T902 啟動服務可讓服務在啟動期間略過升級腳本的執行。 如此一來,您就有機會調查並修正基礎問題。
  5. 解決問題之後,請務必移除追蹤旗標,讓安裝程式可以重新開機升級腳本執行階段。

使用追蹤旗標 902 啟動 SQL Server 的步驟

使用 Configuration Manager

  1. 啟動 SQL Server 組態管理員。
  2. 選取 SQL Server Services 中的 SQL Server 實例。
  3. 以滑鼠右鍵按一下實例,然後選取 [ 屬性 ]。
  4. 選取 [啟動參數] 索引標籤。
  5. 使用 [ 指定啟動參數 ] 欄位來新增追蹤旗標。 輸入 「-T902」 (不含引號),然後按一下 [ 新增 ]。
  6. 選取 [ 確定 ] 並關閉實例屬性。
  7. 啟動 SQL Server 服務。

如需如何設定啟動選項的詳細資訊,請參閱 SQL Configuration Manager 服務 - 設定伺服器啟動選項

注意

解決問題之後,請務必從組態中移除 -T902。

使用 sqlservr.exe 的命令提示字元

  1. 以系統管理許可權開啟命令提示字元,並將目錄變更為 SQL Server Binn 目錄,例如 C:\Program Files\Microsoft SQL Server\MSSQLXX。YYYY\MSSQL\Binn。

  2. 執行 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
    
  3. 若要在完成時停止實例,請按 ,然後按 CTRL+CY

使用 命令提示字元 net start

預設實例:

NET START MSSQLSERVER /T902 

具名實例:

NET START MSSQL$INSTANCENAME  /T902