暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

sqlserverDBCC恢复数据

原创 风车 2022-12-17
435

早上碰到一个案例,用户SQLSERVER2014出现故障,一直在刷日志,并输出DUMP文件,经过检查发现存在如下关键信息:
1671250300085.png
于是查找对应ID库信息:

select * from master.dbo.sysdatabases;
复制

1671250632851.png
确认为尾号965ID的库存在异常:
尝试修复数据库

Use master
alter database xxx set single_user with rollback immediate
DBCC CHECKDB ('xxx', REPAIR_FAST)
alter database xxx set multi_user with rollback immediate
复制

这个修复检查动作很长,而最终结果要求以REPAIR_ALLOW_DATA_LOSS恢复。

企业微信截图_16712509589270.png

必要允许丢失数据修复,先备份了一下数据库
企业微信截图_16712533312182.png

DBCC CHECKDB ('XXXX', REPAIR_ALLOW_DATA_LOSS);
复制

重建索引并修复

DBCC CHECKDB ('xxxxx', REPAIR_REBUILD);
复制

修复结果如下:
image.png

末尾再附修复表的方法:
–以repair_allow_data_loss级别修复表
dbcc checktable(‘XXXX’,repair_allow_data_loss)
单用户下
–若还有问题,修复索引表
DBCC DBREINDEX(‘XXXXX’)
–再修复表
DBCC CHECKTABLE(‘XXXXX’)
–查询是否正常
select * from Tb_Archives_File_1
–还原数据库为多用户模式
alter database test set multi_user with rollback immediate

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论