本文介紹了SQL Server監控磁盤IO錯誤。suspect_pages 表位於 msdb 數據庫中,是在 SQL Server 2005 中引入的。用於維護有關可疑頁的信息的 suspect_pages。
數據庫管理員負責管理表(主要通過刪除舊的行實現)。suspect_pages 表有大小限制,如果此表已滿,則不會記錄新的錯誤。若要防止此表填滿,數據庫管理員或系統管理員必須通過刪除行來手動清除此表中的舊條目。因此,我們建議您定期刪除或存檔 event_type 為已還原或已修復的行或具有舊 last_update 值的行。
若要監視對 suspect_pages 表執行的操作,可使用 Database Suspect Data Page 事件類。有時會因存在暫時性的錯誤向 suspect_pages 表添加行。如果正在向該表添加很多行,則 I/O 子系統可能出了問題。如果您注意到正向該表添加的行數突然增加,我們建議您檢查一下 I/O 子系統是不是出現了問題。
下表顯示了記錄在 suspect_pages 表的 event_type 列中的錯誤。
錯誤說明 event_type 值
由操作系統 CRC 錯誤造成的 823 錯誤,或者校驗和錯誤或頁撕裂以外的 824 錯誤(例如,頁 ID 錯誤)
1
錯誤的校驗和
2
殘缺頁
3
已還原(頁在標記為錯誤後已還原)
4
已修復(DBCC 修復了頁)
5
已由 DBCC 釋放
7
暫時性的錯誤也會記錄在 suspect_pages 表中。暫時性錯誤的來源包含 I/O 錯誤(例如電纜斷開連接)或暫時未通過重復校驗和測試的頁。
數據庫引擎如何更新 suspect_pages 表
數據庫引擎對 suspect_pages 表執行下列操作:
如果表未滿,則每出現一個 824 錯誤,該表都會更新以指明出現了錯誤,且錯誤計數器也將相應遞增。
如果通過修復、還原或釋放操作修復後的頁仍有錯誤,則其 number_of_errors 計數將會遞增,其 last_update 列也會更新
列出的頁通過還原或修復操作修復之後,該操作將更新 suspect_pages 行,以指示此頁已修復 (event_type = 5) 或已還原 (event_type = 4)。
如果運行 DBCC 檢查,則該檢查會將所有未出錯頁標記為已修復 (event_type = 5) 或已釋放 (event_type = 7)。
自動更新 suspect_pages 表
嘗試讀取數據文件中的某一頁由於以下原因之一失敗後,數據庫鏡像伙伴將更新 suspect_pages 表。
由操作系統 CRC 錯誤導致的 823 錯誤。
824 錯誤(像頁撕裂這樣的邏輯損壞)。
以下操作將自動從 suspect_pages 表中刪除行。
ALTER DATABASE REMOVE FILE
DROP DATABASE
DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 更新 suspect_pages 表,以指示已釋放或已修復的各頁。
RESTORE 也可更新該列表。完整還原、文件還原或頁面還原將頁面項標記為已還原。
以上就是精品為大家提供的關於SQL Server監控磁盤IO錯誤的相關內容,希望能夠幫助到大家。