使用微軟時 SQL Server 要附加或訪問損壞的 MDF 數據庫文件,您可能會遇到各種令人困惑的錯誤消息。 下面,我們將列出所有錯誤,按頻率排序。 對於每個錯誤,我們將概述其症狀,解釋確切原因,並提供示例文件以及由 DataNumen SQL Recovery. 這將幫助您更好地理解這些錯誤。 注意 'xxx.MDF' 將代表您損壞的名稱 SQL Server MDF 數據庫文件。
基於 SQL Server 或者CHECKDB錯誤信息,錯誤分為三種:
-
- 分配錯誤: 我們知道MDF和NDF文件中的數據分配為 網頁。 還有一些用於分配管理的特殊頁面,如下所示:
頁麵類型 | 產品描述 |
GAM頁面 | 存儲全局分配圖(GAM)信息。 |
SGAM頁面 | 存儲共享的全局分配圖(SGAM)信息。 |
IAM頁面 | 存儲索引分配圖(IAM)信息。 |
PFS頁面 | 存儲PFS分配信息。 |
如果以上任何分配頁面有錯誤,或者這些分配頁面管理的數據與分配信息不一致,則 SQL Server 或CHECKDB將報告 分配錯誤.
- 一致性錯誤: 為 網頁 用於存儲數據的數據,包括數據頁和索引頁(如果有) SQL Server 或CHECKDB發現頁面內容和校驗和之間存在任何不一致,則它們將報告 一致性錯誤。
- 所有其他錯誤: 可能還有其他錯誤不屬於上述兩個類別。
- xxxx.mdf不是主數據庫文件。 (微軟 SQL Server,錯誤:5171)
- 文件'xxxx.mdf'的頭文件不是有效的數據庫文件頭。 FILE SIZE屬性不正確。(Microsoft SQL Server,錯誤:5172)
- SQL Server 檢測到基於邏輯一致性的I / O錯誤:錯誤的校驗和
- SQL Server 檢測到基於邏輯一致性的I / O錯誤:頁面撕裂
- 您錯誤地刪除了數據庫中的某些記錄或某些表。
SQL Server 有一個稱為的內置工具 數據庫管理中心, 其中有 檢查數據庫 和 檢查表 有助於修復損壞的MDF數據庫的選項。 但是,對於嚴重損壞的MDB數據庫文件, DBCC 檢查數據庫 和 檢查表 也會失敗。
CHECKDB報告的一致性錯誤:
- SQL Server 檢測到基於邏輯一致性的I / O錯誤:錯誤的校驗和
- sys.xxx中的行在sys.xxx中沒有匹配的行。
- 表格錯誤:將重建對象ID ##,索引ID ##。
- 無法重新創建此系統表索引。
- 對象ID ##,索引ID ##,分區ID ##,分配單元ID ##(類型未知),頁面ID(##:560)在其頁面標題中包含錯誤的頁面ID。
CHECKDB報告的分配錯誤:
CHECKDB報告的所有其他錯誤: