"附加数据库"时提示无"*.ldf"文件,用同数据库名的*.ldf文件代替也不行

 "附加数据库"时提示无"*.ldf"文件,用同数据库名的*.ldf文件代替也不行。解决办法如下:

Use   Master   
  Go   
  sp_configure   'allow   updates',   1   
  reconfigure   with   override   
  Go   
  然后   
  update   sysdatabases   set   status   =   32768   where   name   =   '<db_name>'   
  现在,重新建立一个log文件(我试过但无法成功,不知高手有何方法)。   
    
  先把SQL   Server   重新启动一下,然后检查你的数据库吧。   
  先设置成单用户模式,然后做dbcc   
  sp_dboption   '<db_name>',   'single   user',   'true'   
  DBCC   CHECKDB('<db_name>')   
  把数据库状态改回去了,记得别忘了把系统表的修改选项关掉。   
  update   sysdatabases   set   status   =   28   where   name   =   '<db_name>'   --当然你的数据库状态可能不是这个,自己改为合适的值吧。也可以用sp_resetstatus   
  go   
  sp_configure   'allow   updates',   0   
  reconfigure   with   override   
    
  如果无法成功创建日志文件,也没有关系,使用以上方法后,看是否已恢复数据库,应该能成功的。关闭SQL   SERVER,然后重启,观察一下数据库状态是否正常,如果正常,一切万事大吉,如果数据库处于置疑状态。重新上面的步骤,注意将数据库名称更改为其他名字,恢复后不要关闭SQL   SERVER,然后新建一个与原来数据库名称一样的数据库,然后耐心的将恢复得到的数据库中所有的表、视图、函数、存储过程(不包括系统内部的),复制到新建的数据库,要有耐心,特别要注意有相关性的表、视图、函数、存储过程等的复制先后次序,否则会复制失败的。   
      上面的方法是万不得已才使用的。我在恢复公司内的数据库时,最后就是采用这种方法才最后成功的。希望对你有所帮助。

  我在上面已经讲过,如果重启后数据库状态为"置疑",可以重新运用你上面恢复数据库的办法,要使用其他的数据库名称,使数据库处于紧急处理状态(32768   )。然后,不要重启,新建一个数据库,名称是你原来的数据库名(linjudy)。最后,通过导入数据(在新数据库上)或导出数据(在恢复的数据库上)功能,进行两个数据库的数据复制,可以一次进行多个数据和视图的导入或导出,但要注意相关联的表或视图导入或导出的先后次序,否则会出错的。如果不知道哪些表或视图有关联,可以一部分一部分的进行,如果出错就缩小进行的范围,要有耐心。导入或导出函数和存储过程时,要选择导入或导出方法的第三项,在下一步,特别要注意不要选择相关性,否则很容易导致错误,你也应一部分一部分的进行,不要一次全部完成。我想这样一定可以解决你的问题的,这是我的亲身体验。
   先新建了linjudy数据库/将sql停止后覆盖了mdf文件并删除了ldf文件再使用如下方法操作   
  Use   Master   
  Go   
  sp_configure   'allow   updates',   1   
  reconfigure   with   override   
  Go   
    
  update   sysdatabases   set   status   =   32768   where   name   =   'linjudy'   
    
  重启sql后在运行,发现linjudy数据库可以正常打开了,立即查看原有的数据有了,在新建了数据库导出所有表,成功。   
  重启sql后linjudy库变为"紧急状态"但可以通过“导出数据”导出数据至其它数据库。   
    
  至此数据恢复成功,数据是否可以用我没有试。   
  以后大家恢复时可以用"天马行空"网友的方法,并且在重启sql时可以看一下恢复库的状态如果是"紧急状态"可以通过导出数据导出至其它数据库。   
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值