KB3044958 - 修正:當您執行 DBCC CHECKDB,然後 SQL Server 意外關閉時,快照的復原復原會失敗

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

症狀

假設您執行 DBCC CHECKDB 命令,在具有 SQL Server 2012 或 SQL Server 2014 中有進行中交易的資料庫上建立暫時快照集或快照集,但快照集的復原復原因外部錯誤而失敗,例如 I/O 錯誤。 在此情況下,下列錯誤訊息會記錄在 SQL Server 錯誤記錄檔中,且 SQL Server 會意外關閉:

注意

<時間戳記><SPID><n> 個在資料庫 '<dbname>' 中復原的交易 (<ID>) 。 這是一則資訊訊息。 不需要使用者動作。
<時間戳記><SPID> 作業系統傳回錯誤 665 (無法完成要求的作業,因為檔案系統限制) 在檔案 '<filename>' 中的位移<位移>寫入期間SQL Server。 SQL Server 錯誤記錄檔和系統事件記錄檔中的其他訊息可能會提供更多詳細資料。 這是嚴重的系統層級錯誤狀況,威脅資料庫完整性,必須立即修正。 (DBCC CHECKDB) 完成完整的資料庫一致性檢查。 此錯誤可能由許多因素造成;如需詳細資訊,請參閱《SQL Server 線上叢書》。
<時間戳記><SPID> 錯誤:3314,嚴重性:17,狀態:3。
<時間戳記><SPID> 復原資料庫 '<dbname>' 中記錄的作業時,記錄識別碼 (<aa:bb:cc>) 發生錯誤。 通常,特定失敗先前會記錄為 Windows 事件記錄檔服務中的錯誤。 從備份還原資料庫或檔案,或修復資料庫。
<時間戳記><SPID> 錯誤:831,嚴重性:20,狀態:1。
<時間戳記><SPID> 無法解除配置保留的頁面。
<時間戳記><SPID> 錯誤:3449,嚴重性:21,狀態:1。
<時間戳記><SPID> SQL Server必須關閉,才能復原資料庫識別碼 <dbid>) (資料庫。 資料庫是無法關閉的使用者資料庫或系統資料庫。 重新啟動 SQL Server。 如果資料庫在其他啟動後無法復原,請修復或還原資料庫。
<時間戳記><SPID> SQL 追蹤已因為伺服器關機而停止。 追蹤識別碼 = '1'。 這只是一則資訊訊息;不需要使用者動作。
<時間戳記><SPID> SQL 追蹤已因為伺服器關機而停止。 追蹤識別碼 = '2'。 這只是一則資訊訊息;不需要使用者動作。
<時間戳記><SPID> 錯誤:17188,嚴重性:16,狀態: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 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 我們建議您下載並安裝 SQL Server 的最新累積更新:

      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。