Sql-Server

還原差異備份時還原錯誤事件 id 17066 和 3624

  • June 21, 2015

在 Norecovery 模式下恢復完整備份後恢復 Diff 備份時出現以下錯誤。

我無法dbcc checkdb用作恢復數據庫的數據庫。問題僅在總共有 6 個實例的三個實例中發生。在其他情況下,恢復工作正常。

錯誤:

消息 5052,第 16 級,狀態 1,第 4 行

當數據庫處於恢復狀態時,不允許使用 ALTER DATABASE。

消息 5069,第 16 級,狀態 1,第 4 行

ALTER DATABASE 語句失敗。

位置:文件系統.cpp:526

表達式:newTree.IsInArchive()

SPID:98

程序 ID:1956

消息 3013,第 16 層,狀態 1,第 22 行

RESTORE DATABASE 異常終止。

消息 3624,第 20 層,狀態 1,第 22 行

系統斷言檢查失敗。有關詳細資訊,請查看 SQL Server 錯誤日誌。

通常,斷言失敗是由軟體錯誤或數據損壞引起的。要檢查數據庫是否損壞,請考慮執行 DBCC CHECKDB。如果您同意在安裝過程中向 Microsoft 發送轉儲,則會向 Microsoft 發送小型轉儲。Microsoft 可能會在最新的 Service Pack 或技術支持的 QFE 中提供更新。

幫助我解決這個問題。

系統斷言檢查失敗。有關詳細資訊,請查看 SQL Server 錯誤日誌。通常,斷言失敗是由軟體錯誤或數據損壞引起的。要檢查數據庫是否損壞,請考慮執行 DBCC CHECKDB

此錯誤可能是由瞬態的、與時間相關的錯誤或記憶體中或磁碟上的數據損壞引起的。

此消息還表明,您嘗試還原為差異備份的備份集實際上並不一致,如果您嘗試應用此備份,SQL Server 無法將數據庫帶到邏輯點。斷言檢查是 SQL Server 錯誤或數據庫中的某些損壞。

您可以使數據庫聯機並可以執行正常dbcc checkdb命令並發布輸出

您還需要檢查差異備份是否一致,您可以通過以下命令執行此操作

restore verifyonly from disk='backup_location\backup.bak' 

執行上面的命令並粘貼有問題的結果

我無法使用 dbcc checkdb 作為恢復 db 的數據庫。問題僅在總共有 6 個實例的三個實例中發生。在其他情況下,恢復工作正常。

由於數據庫處於恢復模式,因此您無法在其上執行任何命令,這就是您在其上執行的每個命令都失敗的原因

最後你還可以添加輸出

sp_readerrorlog

引用自:https://dba.stackexchange.com/questions/104677