症状:

尝试将 .MDF 数据库附加到 SQL Server,您会看到以下错误消息:

服务器“xxx”的附加数据库失败。 (微软.SqlServer.Smo)

执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)

文件“xxx.mdf”的标头不是有效的数据库文件标头。 FILE SIZE 属性不正确。(微软 SQL Server,错误:5172)

其中“xxx.mdf”是要附加的 MDF 文件的名称。

报错信息截图:

准确的解释:

MDF 文件中的数据存储为页面,每页大小为 8KB。 第一页,称为文件头页,包含 most 有关整个文件的重要信息,包括文件签名、大小、兼容性和 其他重要细节.

如果 MDF 文件头页损坏或损坏,并且无法被 Microsoft 识别 SQL Server, 然后 SQL Server 会认为 header 无效并报告此错误。

您可以使用我们的产品 DataNumen SQL Recovery 从损坏的 MDF 文件中恢复数据并解决此错误。

示例文件:

将导致错误的示例损坏的 MDF 文件:

SQL Server 版本 损坏的 MDF 文件 MDF文件修复 DataNumen SQL Recovery
SQL Server 2005 错误2_1.mdf 错误2_1_固定.mdf
SQL Server 2008 R2 错误2_2.mdf 错误2_2_固定.mdf
SQL Server 2012 错误2_3.mdf 错误2_3_固定.mdf
SQL Server 2014 错误2_4.mdf 错误2_4_固定.mdf