KB2963384 - 修正:當 tempdb 資料庫的日誌檔在 2012 或 2014 SQL Server SQL Server 滿時SQL Server當機

套用到
SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use) SQL Server 2014 Express - duplicate (do not use) SQL Server 2012 Enterprise SQL Server 2012 Developer SQL Server 2012 Express SQL Server 2012 Web SQL Server 2012 Standard

症狀

假設你使用的是 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 產品中的問題。