当前位置 返回首页 > 修复案例 > 正文

重装系统通过数据恢复软件找回来的数据库文件提示不是有效的SQL SERVER文件的修复案例

客户重装系统忘记备份原c分区的数据库 ,之后通过数据恢复软件找回来了几个数据库文件 。其中3个数据库都能正常附加使用,仅当中1个库无法附加,提示不是有效的SQL SERVER文件 ,如图
不是有效的SQL SERVER文件

修复过程
1.新建一个同名的数据库(数据文件与原来的要一致)
2.再停掉sql server(注意不要分离数据库)
3.用原数据库的数据文件覆盖掉这个新建的数据库
4.再重启sql server
5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)
是不是看了上面的流程有点眼熟呀, 不错,就是之前介绍过的 Sql Server置疑数据库解决方法 ,执行的语句就不用多讲了, 大家可以看前面的文章。

言归正传,我在执行到

dbcc rebuild_log(’kmxc’,'F:\www.db-recovery.com\kmxc_log.ldf’)

提示报错
服务器: 消息 5180,级别 22,状态 1,行 1
由于文件 ID 0(位于数据库 ‘kmxc’ 中)无效,所以未能打开 FCB。
连接中断

日志创建不了, 先不管,用DBCC checkdb看看报什么错误

服务器: 消息 8966,级别 16,状态 1,行 1
未能读取并闩锁页 (33216:0)(用闩锁类型 SH)。sysindexes 失败。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

分析它结构,修复sysindexes ,其他系统表还是有错误, 看来只能重建修复系统表了。 通过原有备份,重建系统表,DBCC checkdb一点问题都没有 , 交付客户验证无误。

上一篇 TempDB损坏的处理下一篇 通过LDF文件实现日志回滚将数据恢复