10月31号,在一次大量数据的操作过程中,因突然停电造成数据库文件损坏,数据库为SqlServer2000,打开企业管理器时,此库文件显示为置疑,将服务器重启后,此文件已不显示在企业管理器中,再次附加,提示出错。此时库中的数据最多的一个表有330万数据,因有图片,数据文件较大,达192G。
首先将此库文件及日志文件改名后,在企业管理器内新建一个与损坏文件同名的库文件,并新建在同一个目录下,停止数据库服务,将新建的库文件及日志文件删除,再将原来的损坏文件名称改回,重启数据库服务,打开企业管理器,此库文件显示在企业管理器中,状态为置疑;
在网上搜到一段对置疑数据库处理的代码,查询分析器中执行,代码如下:
![](https://i-blog.csdnimg.cn/blog_migrate/7868c7a4c0b6082d550371b04eef503c.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/211b7f27feac43c83e92e5122759f942.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/2b38ad96f61e3ed221ac350b44a85047.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7dd6dfa8369c3a916edf16d67a21b2fb.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4c9979d1be4b9ef347003ffc7235031d.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/5f7ea0ce6777fa03d604e4b153f5ae71.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/ec9197caefdf84879f598ff52c96f9db.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6c46e82e60aee7e627f7a9e57960723e.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c98e9a98797f333aff0df4110abffc90.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/fa486f4e8ff7a388b34e73d884bff7a3.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/bbc1a31ccd39ab4408f209acff00c306.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c4acd4fbeed5e8dbf5d0a2f6dda2f1ef.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4de2d6347970fb6ebac6de1dabd5a9ac.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/a5cc870ade67050c60bdab0c2256dd28.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/9a8a54202644275a1b4184fd7666bba8.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/48576cc66ea475b5079cf1c672a3658c.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/57b9a536dff9fc539f53fa95d983edff.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/36910042d4123da8541a6567bb85f217.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/f66f361c98b0936efb77834b76dea1fe.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/634782b9eca3fd38fb723a3ec087d726.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/4352ca2e3420ca293e222561c1b04fdf.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/c1cd309bd9cd764554dc213f9961f68a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/7f3c8854ce6068eb7f1e9e3cb55c36a2.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/8ef3b7b3ccdd4acdfc49c95235742f01.gif)
感谢以上代码的写作者。
在执行后,系统显示:未能在数据库中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式。
再想办法仍然不能通过一致性检查,重启系统后,发现库文件已经不是置疑状态,此时数据库可以查询,但不能修改及删除,只能再重建一个后将数据导入,后因磁盘空间问题未能直接导入。在网络上传输时,又因网络中断屡试未果。为了不影响整个系统的运行(系统为近实时运行的系统),最终只能备份了最近一段时间的数据,将原来文件删除,再重建了一个。只是可惜了那300多万的数据。