症状:

使用时 DBCC 检查数据库REPAIR_ALLOW_DATA_LOSS 修复 修复损坏的 .MDF 数据库的参数,如下所示:

DBCC CHECKDB(xxxx,'REPAIR_ALLOW_DATA_LOSS')

您会看到以下错误消息:

消息5125,级别24,状态2,行2
File 'C:Program FilesMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf' 似乎已被操作系统截断。 预期大小为 5120 KB,但实际大小为 5112 KB。
消息3414,级别21,状态1,行2
恢复期间发生错误,导致数据库“Error1”(39:0)无法恢复tar婷。 诊断恢复错误并修复它们,或从已知良好的备份中恢复。 如果错误未得到更正或预期错误,请联系技术支持。

其中“Error1”是正在修复的损坏 MDF 数据库的名称。

讯息5125 错误既不是分配错误也不是一致性错误。 当 MDB 文件的尾部部分由于数据损坏而被删除时,就会发生这种情况。

报错信息截图:

准确的解释:

当去掉MDB文件尾部的部分后, 检查数据库 将报告 讯息5125 错误并尝试修复它。 如果数据库无法修复,则会产生 讯息3414 错误。

其实数据库也可以恢复,如果使用我们的产品 DataNumen SQL Recovery 做任务。

示例文件:

SQL Server 版本 损坏的 MDF 文件 MDF文件修复 DataNumen SQL Recovery
SQL Server 2014 Error8.mdf Error8_固定.mdf

参考文献: