症状:
尝试将 .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 |