客户数据库suspect处理

今天早上客户发现数据库suspect!

说是磁盘坏了,然后去换了硬盘,他们做的是raid5。

联系紧急处理,换好硬盘后,上去设置数据库紧急模式,然后在单用户下做了

DBCC CHECKDB('DBName', REPAIR_ALLOW_DATA_LOSS)-如果必要允许丢失数据修复,数据库修复需在单用户模式下进行】,

貌似数据库正常了,但发现实际使用,有查询报605错误。

这个时候发现dbcc checkdb报错误。

不要用 checkdb , 用 dbcc checktable 代替。
查出哪些表是有问题的, 查到后:
1. 删除表的所有索引;
2. 再 checktable , 如果正常就不用管了;
3. 如果还不正常, select * into xxx_new from xxx with(nolock) , 能回来多少是多少, 看运气了。

 

然后问客户,有做数据备份吗?这个时候是救命的 ...,

有,每天做一个备份!日志传送的备份服务器有问题,新服务器还没买回来!

告诉客户:

如果checktable 处理不成功,就要恢复昨天备份! 

如果能还原最好,但要暂停业务,补录丢失数据的准备,损失很大 ...

然而!客户运气不错,竟然有问题的只是索引!

重建索引后,一切正常!

 

posted @ 2020-03-20 21:51  dgdyq  阅读(181)  评论(0)    收藏  举报