sqlserver数据库文件损坏修复后报错的问题
sqlserver检测到基于一致性的逻辑I\O逻辑错误 校验和不正确
问题描述:常青客户反馈生成水费报错,数据库备份也失败了(如下图),报的错是:读取失败:23(数据错误(循环冗余检查)。)
经水司查询,服务器硬盘无问题,那么就是数据库文件损坏了。
之后水司在外面找人修复了数据库文件,这个问题得以解决,也可以正常备份了。
但出现了新的问题:sqlserver检测到基于一致性的逻辑I\O逻辑错误 校验和不正确
执行以下语句可以修复(需要停止数据库的使用):
--设置成单用户
ALTER DATABASE ydcqBigfootMis SET SINGLE_USER
--检查数据库
DBCC CHECKDB (ydcqBigfootMis, repair_allow_data_loss) with NO_INFOMSGS
go
--完成后设置回多用户
ALTER DATABASE ydcqBigfootMis SET MULTI_USER
go
执行结果如下图:
CHECKDB 在表'tMeterRead' (对象ID 701961577)中发现0 个分配错误和8 个一致性错误。
CHECKDB 在表'tMeterRead' (对象ID 701961577)中修复了0 个分配错误和8 个一致性错误。
CHECKDB 在数据库'ydcqBigfootMis' 中发现0 个分配错误和8 个一致性错误。
CHECKDB 在数据库'ydcqBigfootMis' 中修复了0 个分配错误和8 个一致性错误。
至此,数据库一致性错误已被修复,可正常使用了。