当您使用Microsoft SQL Server附加或访问损坏的MDF数据库文件时,您将看到各种错误消息,这可能会让您感到有些困惑。因此,在这里我们将尝试列出所有可能的错误,根据它们发生的频率进行排序。对于每个错误,我们将描述其症状,解释其确切原因,并给出示例文件以及我们修复的文件DataNumen SQL Recovery,以便你能更好地理解他们。下面我们将使用' xxx。MDF '来表示损坏的SQL Server MDF数据库文件名。
根据SQL Server或CHECKDB错误消息,有三种类型的错误会导致失败:

    1. 配置错误:我们知道MDF和NDF文件中的数据被分配为页面.还有一些专门用于分配管理的页面,如下所示:
页面类型 描述
访问页面 存储全局分配映射(GAM)信息。
SGAM页面 存储共享的全局分配映射(SGAM)信息。
我的页面 存储IAM (index allocation map)信息。
PFS页面 存储PFS分配信息。

如果上面的分配页面有错误,或者由这些分配页面管理的数据与分配信息不一致,那么SQL Server或CHECKDB将报告配置错误

  • 连贯性错误:页面用于存储数据,包括数据页和索引页,如果SQL Server或CHECKDB发现页内容与校验和之间有任何不一致,那么它们将报告一致性错误。
  • 所有其他错误:可能还有其他不属于上述两类的错误。

SQL Server有一个内置的工具叫做DBCC,有CHECKDB而且CHECKTABLE选项,可以帮助修复损坏的MDF数据库。然而,对于严重损坏的MDB数据库文件,DBCC CHECKDB而且CHECKTABLE也会失败。

CHECKDB报告的一致性错误:

CHECKDB报告的分配错误:

CHECKDB报告的所有其他错误: