共用方式為


瞭解及管理 suspect_pages 資料表

更新: 2005 年 12 月 5 日

SQL Server 2005 會在每個伺服器執行個體的 msdb 資料庫suspect_pages 資料表中維護可疑頁面的資訊。suspect_pages 資料表關係到是否有必要進行還原的決定。

SQL Server Database Engine 讀取內含 824 錯誤的資料庫頁面時 (請參閱下表),會將該頁面視為「可疑」,並將它的頁面識別碼記錄在 suspect_pages 資料表中。Database Engine 會記錄正常處理期間 (例如下列時間) 發生的任何可疑頁面:

  • 查詢必須讀取頁面。
  • 在 DBCC CHECKDB 作業期間。
  • 在備份作業期間。

在還原作業、DBCC 修復作業或卸除資料庫作業期間,也會視需要更新 suspect_pages 資料表。

記錄在 suspect_pages 資料表的錯誤

suspect_pages 資料表每頁都會包含一個因 824 錯誤而失敗的資料列 (上限是 1,000 個資料列)。下列 824 錯誤記錄在 suspect_pages 資料表的 event_type 資料行中。

錯誤描述 event_type

非錯誤的總和檢查碼或損毀頁面 (例如,錯誤的頁面識別碼) 的 824 錯誤

1

錯誤的總和檢查碼

2

損毀頁面

3

已還原 (在將頁面標示為錯誤頁面之後,還原該頁面)

4

已修復 (DBCC 已修復頁面)

5

由 DBCC 取消配置

7

suspect_pages 資料表也記錄暫時性錯誤。暫時性錯誤的來源包括 I/O 錯誤 (例如,纜線連接斷開),或暫時在重複總和檢查碼測試中失敗的頁面。

Database Engine 更新 suspect_pages 資料表的方式

Database Engine 會對 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 資料表自動刪除資料列:

  • ALTER DATABASE REMOVE FILE
  • DROP DATABASE
  • DBCC CHECKDB REPAIR_ALLOW_DATA_LOSS 會更新 suspect_pages 資料表,以指出它所取消配置或修復的每個頁面。
  • RESTORE 也會更新清單。完整、檔案或分頁還原會將頁面項目標示為已還原。

資料庫管理員的維護角色

資料庫管理員負責管理資料表,主要是刪除舊的資料列。suspect_pages 資料表有大小限制,且如果該資料表已滿,則不會記錄新的錯誤。當這份資料表將滿時,資料庫管理員或系統管理員必須手動刪除資料列,以清除這份資料表中的舊項目。除非資料庫管理員已做這樣的處理,否則無法再放入任何項目。

資料庫管理員也可以插入或更新記錄。例如,如果資料庫管理員知道某個疑問頁面其實沒問題,但想要保留記錄一段時間,則更新資料列會很有用。

範例

下列範例會刪除 suspect_pages 資料表中的一些資料列。

--  Select restored, repaired, or deallocated pages.
DELETE FROM msdb..suspect_pages
   WHERE (event_type = 4 OR event_type = 5 OR event_type = 7);
GO

下列範例會依據 suspect_pages 資料表中的損毀頁面進行選取。

-- Select nonspecific 824, bad checksum, and torn page errors.
SELECT * FROM msdb..suspect_pages
   WHERE (event_type = 1 OR event_type = 2 OR event_type = 3);
GO

請參閱

概念

執行分頁還原

其他資源

DROP DATABASE (Transact-SQL)
RESTORE (Transact-SQL)
BACKUP (Transact-SQL)
DBCC (Transact-SQL)
suspect_pages (Transact-SQL)

說明及資訊

取得 SQL Server 2005 協助