症状:
使用时 DBCC 检查数据库 - REPAIR_ALLOW_DATA_LOSS 修复 修复损坏的 .MDF 数据库的参数,如下所示:
DBCC CHECKDB(xxxx,'REPAIR_ALLOW_DATA_LOSS')
您会看到以下错误消息:
消息5028,级别16,状态4,行4
系统无法激活足够的数据库来重建日志。
“xxxx”的 DBCC 结果。
CHECKDB 在数据库“xxxx”中发现 0 个分配错误和 0 个一致性错误。
消息7909,级别20,状态1,行4
紧急模式修复失败。您必须从备份中恢复。
其中“xxxx”是正在修复的损坏的 MDF 数据库的名称。
讯息5028 错误既不是分配错误也不是一致性错误。
而 讯息7909 是一个严重的错误,可能在许多情况下发生 SQL Server 认为数据库无法恢复。
报错信息截图:
准确的解释:
错误信息(讯息5028) 似乎与 LOG 文件有关。 然而,这是一个误报。 实际问题还是MDF数据库损坏引起的。
您可以使用我们的产品 DataNumen SQL Recovery 从损坏的 MDF 文件中恢复数据并解决此错误。
示例文件:
样本损坏的 MDF 文件将导致 讯息5028 错误:
SQL Server 版本 | 损坏的 MDF 文件 | MDF文件修复 DataNumen SQL Recovery |
SQL Server 2014 | 错误3.mdf | Error3_fixed.mdf |