症状:

当使用DBCC CHECKDBREPAIR_ALLOW_DATA_LOSS参数来修复损坏的。mdf数据库,像这样:

DBCC CHECKDB(xxxx, ' REPAIR_ALLOW_DATA_LOSS ')

您将看到以下错误消息:

' xxxx '的DBCC结果。
CHECKDB在数据库“xxxx”中发现0个分配错误和0个一致性错误。
指令824,24层,状态2,8号线
SQL Server检测到一个基于逻辑一致性的I/O错误:错误的校验和(预期:0xea8a9a2f;实际:0 x37adbff8)。它发生在读取文件' xxxx.mdf '中数据库ID 39中的偏移量0x00000000038000页(1:28)时。SQL Server错误日志或系统事件日志中的其他消息可能提供更详细的信息。这是一个严重的错误情况,威胁到数据库的完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC CHECKDB)。造成这种错误的因素有很多;有关更多信息,请参阅SQL Server联机书籍。

“xxxx。mdf '是正在修复的损坏的mdf文件的名称。尽管CHECKDB说

CHECKDB在数据库“xxxx”中发现0个分配错误和0个一致性错误。

这仍然是一个一致性错误(味精824)。

错误提示截图:

基于逻辑一致性的I/O错误:错误的校验和

如果损坏严重,则会出现连续的错误消息(味精824),详情如下:

SQL Server检测到一个基于逻辑一致性的I/O错误:错误的校验和(预期:0x3d17dfef;实际:0 xd81748ef)。它发生在读取文件' xxxx.mdf '中数据库ID 39中偏移量为0000000000000000的页(1:0)时。SQL Server错误日志或系统事件日志中的其他消息可能提供更详细的信息。这是一个严重的错误情况,威胁到数据库的完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC CHECKDB)。造成这种错误的因素有很多;有关更多信息,请参阅SQL Server联机书籍。

SQL Server检测到一个基于逻辑一致性的I/O错误:错误的校验和(预期:0x3d17dfef;实际:0 xd81748ef)。它发生在读取文件' xxxx.mdf '中数据库ID 39中偏移量为0000000000000000的页(1:0)时。SQL Server错误日志或系统事件日志中的其他消息可能提供更详细的信息。这是一个严重的错误情况,威胁到数据库的完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC CHECKDB)。造成这种错误的因素有很多;有关更多信息,请参阅SQL Server联机书籍。

“xxxx。mdf '是正在修复的损坏的mdf文件的名称。

错误提示截图:

如果腐败更严重,你可能会看到味精7909遵循味精824

' xxxx '的DBCC结果。
CHECKDB在数据库“xxxx”中发现0个分配错误和0个一致性错误。
指令824,24层,状态2,8号线
SQL Server检测到一个基于逻辑一致性的I/O错误:错误的校验和(预期:0xcfcd2118;实际:0 x6fc599d6)。它发生在读取文件' xxxx.mdf '中数据库ID 39中偏移量0x00000000002000的页面(1:1)时。SQL Server错误日志或系统事件日志中的其他消息可能提供更详细的信息。这是一个严重的错误情况,威胁到数据库的完整性,必须立即纠正。完成完整的数据库一致性检查(DBCC CHECKDB)。造成这种错误的因素有很多;有关更多信息,请参阅SQL Server联机书籍。
编号7909,20层,状态1,8号线
紧急模式修复失败。必须从备份中恢复。

其中' xxxx '是数据库名,' xxxx. xml '是数据库名。Mdf '是数据库物理文件名。

请注意味精7909这是一个严重的错误,可能发生在许多情况下,每当SQL Server认为数据库是不可恢复的。

错误提示截图:

精确的解释:

MDF文件中的数据存储为8KB页面.每个页面都有一个可选的校验和字段。

如果DBCC CHECKDB命令在头页、PFS页和一些数据页中发现校验和值无效且无法纠正该问题,则它将报告此错误(味精824).如果腐蚀严重,则可能出现连续错误(味精824)或接著另一个错误(味精7909).

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

示例文件:

将导致错误的损坏MDF文件示例(单个Msg 824错误):

SQL Server版本 损坏的MDF文件 MDF文件固定DataNumen SQL恢复
SQL Server 2014 Error1_3.mdf Error1_3_fixed.mdf

将导致错误的损坏MDF文件示例(连续824个错误):

SQL Server版本 损坏的MDF文件 MDF文件固定DataNumen SQL恢复
SQL Server 2014 Error1_1.mdf Error1_1_fixed.mdf

将导致错误的损坏MDF文件示例(Msg 824错误,接着是Msg 7909错误):

SQL Server版本 损坏的MDF文件 MDF文件固定DataNumen SQL恢复
SQL Server 2014 Error1_2.mdf Error1_2_fixed.mdf

引用:

1.https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-824-database-engine-error?view=sql-server-ver15