症状:
尝试将 .MDF 数据库附加到 SQL Server,您会看到以下错误消息:
无法为此请求检索数据。 (Microsoft.SqlServer.Management.Sdk.Sfc)
执行Transact-SQL语句或批处理时发生异常。 (Microsoft.SqlServer.ConnectionInfo)
xxx.mdf 不是主数据库文件。 (微软 SQL Server, 错误: 5171)
其中 'xxx.mdf 是要附加的 MDF 文件的名称。
报错信息截图:
准确的解释:
MDF文件中的数据以页为单位存储,每页8KB。 第一页称为文件头页,其中包含 most 有关整个文件的重要信息,如文件签名、文件大小、兼容性等。其余页面也包含重要信息,包括页面分配信息以及实际数据。
如果 MDF 文件头页,或其他重要的管理页损坏或损坏,并且无法被 Microsoft 识别 SQL Server, 然后 SQL Server 会认为整个文件不是有效的主数据库文件并报告此错误。
您可以使用我们的产品 DataNumen SQL Recovery 从损坏的 MDF 文件中恢复数据并解决此错误。
示例文件:
将导致错误的示例损坏的 MDF 文件:
SQL Server 版本 | 损坏的 MDF 文件 | MDF文件修复 DataNumen SQL Recovery |
SQL Server 2005 | 错误1_1.mdf | 错误1_1_固定.mdf |
SQL Server 2008 R2 | 错误1_2.mdf | 错误1_2_固定.mdf |
SQL Server 2012 | 错误1_3.mdf | 错误1_3_固定.mdf |
SQL Server 2014 | 错误1_4.mdf | 错误1_4_固定.mdf |