Sql-Server
DBCC CHECKDB 基於一致性的 I/O 錯誤
跑步:
DBCC CHECKDB(DatabaseName) with NO_INFOMSGS
給我以下錯誤:
消息 824,級別 24,狀態 2,第 1 行
SQL Server 檢測到基於邏輯一致性的 I/O 錯誤:頁面 ID 不正確(預期為 1:7753115;實際為 0:0)。它發生在讀取文件“K:\UAT Databases\dbname.MDF”中偏移量 0x00000ec9b36000 的數據庫 ID 11 中的頁面 (1:7753115) 期間。SQL Server 錯誤日誌或系統事件日誌中的其他消息可能會提供更多詳細資訊。這是威脅數據庫完整性的嚴重錯誤情況,必須立即糾正。完成完整的數據庫一致性檢查 (DBCC CHECKDB)。這個錯誤可能是由許多因素引起的;有關詳細資訊,請參閱 SQL Server 聯機叢書。
我還在dbo.suspect_pages中找到了一個條目
請指教。
- 確保您有有效的備份;希望它會發生在腐敗之前,但不久前數據沒有用。如果無法直接修復並且需要從備份中恢復數據,則應將其放在一邊。
- 該文件解釋瞭如何解決問題- 您可以嘗試該
REPAIR_REBUILD
選項,如果這不能解決問題,您可以根據CHECKDB
編寫者 Paul Randal 的說明繼續下一步。他有大量關於 的文章CHECKDB
,幾乎涵蓋了所有可能的情況,但哪些與您相關將取決於您嘗試維修時接下來會發生什麼。一開始可能有用,因此您知道需要修復哪個表:
這是一篇關於恢復故障數據庫的精彩文章:
www.sqlservercentral.com/articles/Corruption/65804/
首先它建議:不要驚慌,不要重新啟動伺服器,不要執行
DBCC CHECKDB(DB_NAME, REPAIR_ALLOW_DATA_LOSS)
然後為您介紹數據庫中常見錯誤的常見修復,例如:
不准確的空間元數據
僅在非聚集索引
中的損壞 - LOB 頁面中的損壞
數據純度錯誤
聚集索引或堆中
的損壞 - 元數據中的損壞
損壞的系統表
損壞的分配頁