症狀
假設你使用的是 Microsoft SQL Server 2012 或 SQL Server 2014。 當 tempdb 資料庫的日誌檔案滿時,SQL Server 會當機,並會收到以下錯誤訊息:
注意
錯誤:9002,嚴重程度:17,狀態:4。
資料庫 'tempdb' 的交易日誌因「ACTIVE_TRANSACTION」而滿。
錯誤:3314,嚴重程度:21,狀態:3。
在資料庫 'tempdb' 中撤銷已記錄的操作時,日誌記錄 ID (135:376:442) 發生錯誤。 通常,該特定故障會先在 Windows 事件日誌服務中記錄為錯誤。 從備份中還原資料庫或檔案,或修復資料庫。
錯誤:3449,嚴重程度:21,狀態:1。
SQL Server必須關閉才能恢復資料庫 ID 2 () 。 資料庫要麼是無法關閉的使用者資料庫,要麼是系統資料庫。 重新啟動 SQL Server。 如果資料庫在再次啟動後無法恢復,請修復或還原資料庫。
SQL 追蹤因伺服器關閉而停止。 追蹤識別碼 = 「1」。 這只是一則資訊訊息;不需要使用者操作。
當 tempdb 日誌檔案大小不足以處理 tempdb 工作負載,且日誌檔案的自動成長設定為 關閉時,就會出現此問題。 如果 tempdb 的回滾因空間有限而失敗,SQL Server 就會當機。
此熱修補能在日誌空間不足時,更精確地計算預留空間。 此熱修正也透過暫時讓 tempdb 日誌成長,有助於避免 tempdb 的回滾失敗。 這些變更有助於防止伺服器當機。
解決方式
SQL Server 2014 服務包資訊
要解決此問題,請取得最新的 Microsoft SQL Server 2014 服務包。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2958069 如何取得 SQL Server 2014 的最新版 Service Pack
欲了解更多關於 SQL Server 2014 服務包 1 (SP1) 的資訊,請參閱 SQL Server 2014 服務包 1 中已修復的錯誤。
SQL Server 2012 服務包資訊
要解決這個問題,請取得最新的 Microsoft SQL Server 2012 服務包。 如需詳細資訊,請按一下下面的文章編號,檢視「Microsoft 知識庫」中的文章:
2755533 如何取得2012 SQL Server最新服務包
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。