可疑頁面中的條目但 checkdb 未顯示錯誤
我正在使用 Microsoft SQL Server 2016 (SP2-GDR) (KB4505220) - 13.0.5101.9 (X64) Jun 15 2019 23:15:58 版權所有 (c) Microsoft Corporation Standard Edition (64-bit) on Windows Server 2012 R2 Standard 6.3 (建構 9600:)
昨天,我在同一數據庫的“suspect_pages”中有兩個條目。事件類型 1 和類型 2 之一
1 = 823 錯誤導致可疑頁面(例如磁碟錯誤)或 824 錯誤而不是錯誤校驗和或損壞頁面(例如錯誤頁面 ID)。
2 = 校驗和錯誤。
database_id file_id page_id eventtype error_count last_update_date 8 1 1482057 1 1 2019-11-14 14:40 8 1 1482057 2 1 2019-11-14 14:40
我找到了相關的對象,它們都指向數據庫上的同一個表。
DBCC TRACEON (3604); DBCC PAGE (8, 1, 14823057, 0); DBCC TRACEOFF (3604);
我在損壞之前有一個有效的備份並且無法承受停機時間,所以我對損壞的數據庫進行了備份,並以新名稱恢復了我的備份。我刪除了損壞的表,然後從有效備份中重新創建了它。
今天,我恢復了昨天在測試伺服器上進行的損壞的數據庫備份,當我執行完整的 checkdb 時,它沒有檢測到損壞。
DBCC CheckDB() WITH No_INFOMSGS, ALL_ERRORMSGS
我從損壞的數據庫中獲取的備份(根據懷疑頁面)怎麼可能沒有任何問題?可疑頁面中的那些條目會是誤報嗎?
數據庫兼容級別為 130 (SQL 2016) 我們的 SQL Server 在 Windows Server 2012 上執行。
所以我寫信給 Brent Ozar,這是我從他那裡得到的答复。這是迄今為止我得到的最好的答案,所以我把它放在這裡:
這正是我在 SQL Server 報告損壞時所做的: https ://brentozar.com/go/corruption
Suspect_pages 不會誤報,但損壞可能已經修復(或者可能只是暫時損壞,例如當您第一次閱讀時儲存出現暫時性錯誤。)請務必遵循該清單並加註星標與 MS 的支持電話。
希望有幫助!布倫特