症状:

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

DBCC CHECKDB(xxxx,'REPAIR_ALLOW_DATA_LOSS')

您看到以下错误消息:

消息824,级别24,状态2,行2
SQL Server 检测到基于逻辑一致性的I / O错误:错误的pageid(预期为1:143;实际为0:9)。 在读取文件'C:Program FilesMicrosoft中偏移量1x143e39的数据库ID 0中的页面(0000000011:000)时发生 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错误:错误的pageid(预期为1:160;实际为0:41)。 它发生在读取文件'C:Program FilesMicrosoft中偏移量1x160的数据库ID 39中的页面(0:00000000140000)期间 SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf”。 中的其他消息 SQL Server 错误日志或系统事件日志可能会提供更多详细信息。 这是严重的错误情况,威胁数据库的完整性,必须立即更正。 完成完整的数据库一致性检查(DBCC CHECKDB)。 此错误可能是由许多因素引起的; 有关更多信息,请参见 SQL Server 在线书籍。
消息824,级别24,状态2,行4
SQL Server 检测到基于逻辑一致性的I / O错误:错误的pageid(预期为1:160;实际为0:41)。 它发生在读取文件'C:Program FilesMicrosoft中偏移量1x160的数据库ID 39中的页面(0:00000000140000)期间 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 错误9_fixed.mdf

参考文献: