如果自己搞不定可以找诗檀软件专业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
Leave a Reply