徵狀
假設您執行 DBCC CHECKDB 命令,該命令會在 SQL server 2012 或 sql server 2014 中進行交易處理的資料庫上建立暫時性快照或快照,而快照上的復原復原失敗的原因是發生了外部錯誤(例如,i/o 錯誤)。 在這種情況下,下列錯誤訊息會記錄在 SQL Server 錯誤記錄中,而 SQL Server 會意外關閉:
<時間戳記> <SPID> <n> 在資料庫 ' <dbname>」中前滾的事務(<識別碼>)。 這只是一則資訊訊息。 不需要使用者動作。 <> <SPID> 作業系統傳回錯誤665(在檔案 "> filename <中,在偏移 <偏移> 時,無法在 SQL Server 上完成要求的操作。 SQL Server 錯誤記錄和系統事件記錄檔中的其他訊息,可能會提供更多詳細資料。 這是嚴重的系統層級錯誤狀況,會威脅資料庫完整性,必須立即修正。 完成完整資料庫一致性檢查(DBCC CHECKDB)。 此錯誤可能是由許多因素所造成;如需詳細資訊,請參閱 SQL Server 線上書籍。 <時間戳記> <SPID> 錯誤:3314、嚴重性:17、State:3。 <時間戳記> <SPID> 在資料庫 ' <dbname>」中撤銷記錄的作業時,記錄記錄識別碼(<aa: bb: cc>)發生錯誤。 通常,特定的故障會記錄為 Windows 事件記錄服務中的錯誤。 從備份還原資料庫或檔案或修復資料庫。 <時間戳記> <SPID> 錯誤:831,嚴重性:20,狀態: 1. <時間戳記> <SPID> 無法解除配置保留的頁面。 <timestamp> <SPID> 錯誤:3449、嚴重性:21、State:1。 <timestamp> <SPID> SQL Server 必須關閉,才能復原資料庫(資料庫識別碼 <dbid>)。 資料庫是無法關閉或系統資料庫的使用者資料庫。 重新開機 SQL Server。 如果資料庫無法在其他啟動之後復原,請修復或還原資料庫。 <時間戳記> <SPID> SQL Trace 因伺服器關閉而停止。 Trace ID = "1"。 這只是一則資訊訊息;不需要使用者動作。 <時間戳記> <SPID> SQL Trace 因伺服器關閉而停止。 Trace ID = "2"。 這只是一則資訊訊息;不需要使用者動作。 <時間戳記> <SPID> 錯誤:17188、嚴重性:16、State:1。
原因
之所以發生這個問題,是因為當快照上的復原復原失敗時,SQL Server 嘗試讓受影響的資料庫處於離線狀態,以進行錯誤處理。 不過,資料庫無法離線,因為在內部保留的閂鎖。 因此,SQL Server 服務會關閉。
解決方案
Service pack 資訊
若要解決此問題,請取得 SQL Server 2014 的 Service Pack 1。
如需 SQL Server 2014 Service Pack 1 (SP1)的詳細資訊,請參閱 在 Sql server 2014 Service pack 1 中修正的錯誤。
累積更新資訊
此問題最初是在 SQL Server 的後續累積更新中修正。
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 我們建議您下載並安裝最新的 SQL Server 累積更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。