日期:2014-05-18  浏览次数:20752 次

如何解决:SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确
消息 824,级别 24,状态 2,第 1 行
SQL Server 检测到基于一致性的逻辑 I/O 错误 校验和不正确(应为: 0xca242b1f,但实际为: 0xfb9fb1b9)。在文件 'C:\Program Files\Microsoft SQL Server\MSSQL10.SQL2008\MSSQL\DATA\test.MDF' 中、偏移量为 0x0000000441e000 的位置对数据库 ID 25 中的页 (1:8719) 执行 读取 期间,发生了该错误。SQL Server 错误日志或系统事件日志中的其他消息可能提供了更详细信息。这是一个威胁数据库完整性的严重错误条件,必须立即纠正。请执行完整的数据库一致性检查(DBCC CHECKDB)。此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。

===================
这是运行select count(*) from produce时出错,现在可以确定是produce中的某几行有问题。
尝试解决的办法有(这些都没用):
1、下面的语句运行了一个晚上还在运行,只能把它停止
SQL code

use test

go

ALTER DATABASE test SET SINGLE_USER

DBCC CHECKDB (test, repair_allow_data_loss) with NO_INFOMSGS

go

ALTER DATABASE test SET MULTI_USER

go 




2、第一次发现出错时把数据库有备份了个bak.bak,现在在本机新建了个临时数据库(temp),并把bak.bak还原到temp中。接着删除test数据库中的produce表(drop table produce),并从temp导入produce表到test数据库,发现还是不行。

最早出现问题所在的服务器数据库是SQL2005
现在是在装有SQL2008的本机进行解决。

请大家帮忙看下,谢谢!


------解决方案--------------------
路过,接分
------解决方案--------------------
楼主执行的修改指令具体是什么?共享一下啊.
------解决方案--------------------

------解决方案--------------------
探讨
问题已解决,大家来接分了。。

解决方法:
在temp中运行修复语句,只要几秒钟就提示修复成功,接着把produce表导入test数据库即可。。。

------解决方案--------------------
临时数据库的问题???GXX
------解决方案--------------------
恭喜楼主