症状:

使用时 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