Sql-Server

DBCC CHECKDB 基於一致性的 I/O 錯誤

  • May 13, 2021

跑步:

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中找到了一個條目

請指教。

  1. 確保您有有效的備份;希望它會發生在腐敗之前,但不久前數據沒有用。如果無法直接修復並且需要從備份中恢復數據,則應將其放在一邊。
  2. 該文件解釋瞭如何解決問題- 您可以嘗試該REPAIR_REBUILD選項,如果這不能解決問題,您可以根據CHECKDB編寫者 Paul Randal 的說明繼續下一步。他有大量關於 的文章CHECKDB,幾乎涵蓋了所有可能的情況,但哪些與您相關將取決於您嘗試維修時接下來會發生什麼。一開始可能有用,因此您知道需要修復哪個表:

這是一篇關於恢復故障數據庫的精彩文章:

www.sqlservercentral.com/articles/Corruption/65804/

首先它建議:不要驚慌,不要重新啟動伺服器,不要執行DBCC CHECKDB(DB_NAME, REPAIR_ALLOW_DATA_LOSS)

然後為您介紹數據庫中常見錯誤的常見修復,例如:

  • 不准確的空間元數據

  • 僅在非聚集索引

中的損壞 - LOB 頁面中的損壞

  • 數據純度錯誤

  • 聚集索引或堆中

的損壞 - 元數據中的損壞

  • 損壞的系統表

  • 損壞的分配頁

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