如何诊断SQL SERVER中的MSG 824错误

如果自己搞不定可以找诗檀软件专业SQL SERVER数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638   QQ号:47079569    邮箱:[email protected]

 

 

如何诊断SQL SERVER中的MSG 824错误

 

若用户在SQL SERVER的错误日志或Windows事件日志中发现以下信息,一般说明了当读取或写入一个数据页面时可能出现了逻辑检测错误:

 

2009-11-02 15:46:42.90 spid51      
Error: 824, Severity: 24, State: 2.
2009-11-02 15:46:42.90 spid51      
SQL Server detected a logical consistency-based 
I/O error: incorrect pageid (expected 1:43686; actual 0:0). 
It occurred during a read of page (1:43686) in database ID 23 
at offset 0x0000001554c000 in file 'H:\MSSQL.SQL2008\MSSQL\DATA\my_db.mdf'.  
Additional messages in the SQL Server error log or system event log may provide more detail. 
This is a severe error condition that threatens database integrity and must be corrected immediately. 
Complete a full database consistency check (DBCC CHECKDB). 
This error can be caused by many factors; for more information, see SQL Server Books Online.

 

 

 

若一个应用程序在读取或修改数据时持续遇到上述错误,则会导致应用端报错且数据库连接会话会被中断。

 

 

原因

Sql server使用Windows的API例如ReadFile,WriteFile,ReadFileScatter,WriteFileGather 来实施IO操作,在做些IO操作时,SQL Server检测这些API系统调用的相关错误条件。若这些API因为操作系统错误而失败,那么SQL SERVER的报错是Error 823。但有些场景中虽然Windows系统API实际上成功调用,但基于I/O操作的数据传送可能遇到逻辑检测问题。这些逻辑检测错误会以Error 824告警。

 

824错误包含下面的信息:

  • 该IO操作涉及的数据库MDF文件
  • 该IO操作尝试发生的文件上的OFFSET偏移量
  • 该数据文件所数据的数据库
  • 该IO操作所发生的Page号
  • 这是一个读取或写入操作
  • 逻辑一致性检测失败的细节,即所作的检测类型,检测字段的预期值和实际值

 

这些逻辑一致性检测是由SQL SERVER发起的额外的完整性检测,以保证数据传输过程中特点的数据键值在I/O操作中得到必要的维护和验证。这些检测包括checksum校验,页面分裂,部分传输更新,错误的PageID,读取到陈旧数据,页面设计失败等。具体做的检测内容取决于数据库和服务级别的设置。

 

824错误信息一般说明对应IO路径下的底层存储系统或者硬件或驱动器存在问题。例如文件系统损坏导致的数据文件损害。

建议用户检测文件系统、驱动器或存储;若发现都没有问题, 则考虑基于备份恢复数据。 同时可以设置PAGE_VERIFY 来验证数据库

 

ALTER DATABASE [PageVerifyTest] SET PAGE_VERIFY CHECKSUM
GO

 


Posted

in

by

Tags:

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *