解决方法:SQLServer检测到基于一致性的逻辑IO错误校验和不正

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

解决⽅法:SQLServer检测到基于⼀致性的逻辑IO错误校验和不

select count(*) from todayConsumeRecords
消息 824,级别 24,状态 2,第 1 ⾏ SQL Server 检测到基于⼀致性的逻辑 I/O 错误由于缺少 DEK,⽆法解密页。

在⽂
件 'D:\Program Files\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\DATA\devicesys.mdf' 中、偏移量
为 0x000000dea6a000 的位置对数据库 ID 9 中的页 (1:455989) 执⾏读取期间,发⽣了该错误。

SQL Server 错误⽇志或系统事件⽇志中的其他消息可能提供了更详细信息。

这是⼀个威胁数据库完整性的严重错误条件,必须⽴即纠正。

请执⾏完整的数据库⼀致性检查(DBCC CHECKDB)。

此错误可以由许多因素导致;有关详细信息,请参阅 SQL Server 联机丛书。

所⽤到的解决⽅法有:
1、 use devicesys
go
ALTER DATABASE devicesys SET SINGLE_USER
DBCC CHECKDB (‘devicesys’, repair_allow_data_loss) with NO_INFOMSGS
go
ALTER DATABASE devicesys SET MULTI_USER
go
失败!
2、尝试着新建了个数据库tmp,并把发现数据库错误时所备份的⽂件还原到tmp中,然后删除devicesys 数据库中的todayConsumeRecords 表。

之后把temp中的todayConsumeRecords表导⼊到devicesys中,当运⾏后出错的那⼏⾏时导⼊动作⾃动停⽌。

失败!
3、最终的解决⽅法:把第⼀⽅法中的SQL语句放到tmp数据库进⾏运⾏,只花了⼏秒钟时间就提⽰修复成功,接着再把tmp中的todayConsumeRecords导⼊devicesys中,成功!
PS:第⼀个⽅法中的语句确实有效,但不懂为什么在出问题的数据库中运⾏不了,要借助临时的数据库才⾏。

不知⽹络上的其他朋友是否也是这样的操作。

相关文档
最新文档