对置疑数据库的恢复过程

10月31号,在一次大量数据的操作过程中,因突然停电造成数据库文件损坏,数据库为SqlServer2000,打开企业管理器时,此库文件显示为置疑,将服务器重启后,此文件已不显示在企业管理器中,再次附加,提示出错。此时库中的数据最多的一个表有330万数据,因有图片,数据文件较大,达192G。
首先将此库文件及日志文件改名后,在企业管理器内新建一个与损坏文件同名的库文件,并新建在同一个目录下,停止数据库服务,将新建的库文件及日志文件删除,再将原来的损坏文件名称改回,重启数据库服务,打开企业管理器,此库文件显示在企业管理器中,状态为置疑;
在网上搜到一段对置疑数据库处理的代码,查询分析器中执行,代码如下:

USE  MASTER
GO
SP_CONFIGURE 
' ALLOW UPDATES ' , 1  
RECONFIGURE   WITH  OVERRIDE
GO
UPDATE  SYSDATABASES  SET  STATUS  = 32768   WHERE  NAME = ' 置疑的数据库名 '
Go
sp_dboption 
' 置疑的数据库名 ' ,  ' single user ' ,  ' true '
Go
DBCC  CHECKDB( ' 置疑的数据库名 ' ) 
Go
update  sysdatabases  set  status  = 28   where  name = ' 置疑的数据库名 '
Go
sp_configure 
' allow updates ' ,  0   reconfigure   with  override
Go  
sp_dboption 
' 置疑的数据库名 ' ,  ' single user ' ,  ' false '
Go  

感谢以上代码的写作者。
在执行后,系统显示:未能在数据库中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式。
再想办法仍然不能通过一致性检查,重启系统后,发现库文件已经不是置疑状态,此时数据库可以查询,但不能修改及删除,只能再重建一个后将数据导入,后因磁盘空间问题未能直接导入。在网络上传输时,又因网络中断屡试未果。为了不影响整个系统的运行(系统为近实时运行的系统),最终只能备份了最近一段时间的数据,将原来文件删除,再重建了一个。只是可惜了那300多万的数据。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值