症状:

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

DBCC CHECKDB(xxxx,'REPAIR_ALLOW_DATA_LOSS')

您会看到以下错误消息:

消息824,级别24,状态2,行2
SQL Server 检测到基于逻辑一致性的 I/O 错误:页面 ID 不正确(预期 1:143;实际 0:9)。 它发生在读取数据库 ID 1 中的页面 (143:39) 时,文件 'C:Program FilesMicrosoft 中的偏移量为 0x0000000011e000 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf'。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是威胁数据库完整性的严重错误情况,必须立即更正。 完成完整的数据库一致性检查 (DBCC CHECKDB)。 此错误可能由多种因素引起; 有关详细信息,请参阅 SQL Server 在线图书。
消息3313,级别21,状态1,行2
在数据库“Error1”中重做记录的操作期间,日志记录 ID (135:752:2) 发生错误。 通常,特定故障以前在 Windows 事件日志服务中记录为错误。 从完整备份还原数据库,或修复数据库。
消息3414,级别21,状态1,行2
恢复期间发生错误,导致数据库“Error1”(39:0)无法恢复tar婷。 诊断恢复错误并修复它们,或从已知良好的备份中恢复。 如果错误未得到更正或预期错误,请联系技术支持。
消息824,级别24,状态2,行2
SQL Server 检测到基于逻辑一致性的 I/O 错误:页面 ID 不正确(预期 1:160;实际 0:41)。 它发生在读取数据库 ID 1 中的页面 (160:39) 时,文件 'C:Program FilesMicrosoft 中的偏移量为 0x00000000140000 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf'。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是威胁数据库完整性的严重错误情况,必须立即更正。 完成完整的数据库一致性检查 (DBCC CHECKDB)。 此错误可能由多种因素引起; 有关详细信息,请参阅 SQL Server 在线图书。
消息824,级别24,状态2,行4
SQL Server 检测到基于逻辑一致性的 I/O 错误:页面 ID 不正确(预期 1:160;实际 0:41)。 它发生在读取数据库 ID 1 中的页面 (160:39) 时,文件 'C:Program FilesMicrosoft 中的偏移量为 0x00000000140000 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf'。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是威胁数据库完整性的严重错误情况,必须立即更正。 完成完整的数据库一致性检查 (DBCC CHECKDB)。 此错误可能由多种因素引起; 有关详细信息,请参阅 SQL Server 在线图书。

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

讯息3313 表示无法执行日志操作。

报错信息截图:

准确的解释:

当 CHECKDB 无法执行记录的操作时,它会报告错误信息 讯息3313 并尝试修复错误。 如果它不能修复错误,那么恢复将失败并会导致更多错误,例如 消息 3414 和消息 824.

您可以使用我们的产品 DataNumen SQL Recovery 从损坏的 MDF 文件中恢复数据并解决此错误。

示例文件:

样本损坏的 MDF 文件将导致 讯息3313 错误:

SQL Server 版本 损坏的 MDF 文件 MDF文件修复 DataNumen SQL Recovery
SQL Server 2014 错误9.mdf Error9_fixed.mdf

参考文献: