时间:2021-07-01 10:21:17 帮助过:157人阅读
对数据MDF文件进行损坏发现很多物理页面损坏,先直接重建日志DBCC检测一下看看,在2008R2平台下重建日志之后发现DBCC语句根本无法查询跟运行,直接报错
消息 8921,级别 16,状态 1,第 1 行
检查已终止。收集事实数据时检测到错误。可能是 tempdb 空间用尽或某个系统表不一致。请检查前面的错误消息。
出现这个错误不管是DBCC查询还是修复语句都无法正常执行,一般此错误都是系统表损坏导致,之前已经检测到页面损坏的情况了,先将页面损坏全部修复,客户提供l了一个4月30号数据备份,因此可以参照备份尝试修复,修复之后开始查找损坏的表数据看看是哪些表损坏,把损坏的表记录下来进行单独对表修复,DBCC checktable(XX,repair_allow_data_loss),但是对损坏厉害的表发现修复语句依然报错不能正常修复,报错结果为:修复失败 如需修复此错误 请先修复其他错误。
一般为表所在页面或许系统表有错乱或损坏导致,大家可以借鉴下百度一篇修复系统表帖子:http://wenku.baidu.com/link?url=HJukdgSFmEEb-_FxsjoUUKx7xUviC_kF2tLISI7cgG8sICWmMZH3tNumFV7Jqhuw-1wa1-2CP5-eEno_kErTusQv2LcuRkWiOPeoYQQyj-y
此方法太过繁琐,最后研究发现可以通过直接修改其他参数之后再次进行DBCC语句修复即可顺利执行进行修复。
最后再次进行DBCC库检测发现全部OK没有数据报错!
本文出自 “sqlrecovery” 博客,请务必保留此出处http://sqlrecovery.blog.51cto.com/9576880/1664540
sql 2008R2系统表损坏
标签:用友u8 repair 服务器 记录 数据库