设为主页 | 加入收藏 | 繁體中文

恢复崩溃SQL Server数据库

  任何数据库体系都无法避免崩溃的状态,即使你利用了Clustered,双机热备……仍然无法完全革除体系中的单点故障,何况对付大部分用户来说,无法承受如许昂贵的硬件投资。以是,在体系崩溃的时间,如何规复原有的名贵数据就成为一个极其重要的问题了。
  在规复的时间,最抱负的情况就是你的数据文件和日记文件都齐备无损了,如许只需要sp_attach_db,把数据文件附加到新的数据库上即可,大概在停机的时间把全部数据文件(一定要有master等)都copy到原有途径下也行,不过一样平常不保举如许的做法,sp_attach_db比较好,虽然贫苦许多。
  但是呢,一样平常数据库崩溃的时间体系是未必能有时间把未完成的事件和脏页等写入磁盘的,如许的情况sp_attach_db就会失败。那么,寄期望于DBA制定了一个良好的灾祸规复计划吧。按照你的规复计划,复原最新的完全备份,增量备份大概事件日记备份,然后要是你的活动事件日记还能读得出来的话,恭喜你!你可以复原到崩溃前的状态。
  一样平常的单位都是没有专职的DBA的,要是没有可用的备份,更大概是近来一次备份的时间过于久远而招致不可担当的数据丧失,并且你的活动事件日记也处于不可用的状态,那就是最贫苦的情况了。
  不幸的很的是,一样平常数据库崩溃都是由于存储子体系惹起的,而如许的情况是几乎不大概有可用的日记用于规复的。
  那么就只好试一下这些方案了。固然,是要求至多你的数据文件是存在的,要是数据文件、日记文件和备份都没有了的话,别找我,你可以到楼顶上去唱“神啊,救救我吧”。
  首先,你可以试一下sp_attach_single_file_db,试着规复一下你的数据文件,虽然能规复的大概性不大,不过假如这个数据库恰好执行了一个checkpoint的话,还是有大概乐成的。
  要是你没有好到有摸彩票的手气,最重要的数据库没有像你期盼的那样attach上去,不要气馁,还是有别的方案的。
  我们可以试着重新建立一个log,先把数据库设置为emergency mode,sysdatabases的status为32768 就表示数据库处于此状态。
  不过体系表是不能随便改的,设置一下先
  Use MasterGosp_configure 'allow updates', 1reconfigure with overrideGo
  然后
  update sysdatabases set status = 32768 where name = ''
  现在,祈求满天神佛的保佑吧,重新建立一个log文件。乐成的时机还是相称大的,体系一样平常都市认可你新建立的日记。要是没有报告什么错误,现在就可以松一口气了。
  虽然数据是规复了,可是别以为事变就算完成了,正在进行的事件一定是丢失了,原来的数据也大概遭到一些损坏。
  先把SQL Server 重新启动一下,然后检查你的数据库吧。
  先设置成单用户模式,然后做
  dbcc sp_dboption '', 'single user', 'true'DBCC CHECKDB('')
  要是没有什么大问题就可以把数据库状态改归去了,记得别忘了把体系表的修正选项关失。
  update sysdatabases set status = 28 where name = ''
  固然你的数据库状态大概不是这个,本身改为合适的值吧。也可以用
  sp_resetstatusgosp_configure 'allow updates', 0reconfigure with overrideGo
  Checkdb的时间大概报告有一些错误,这些错误的数据你大概就只好丢弃了。
  Checkdb有几种修复选项,本身看着用吧,不过最后你大概还是得REPAIR_ALLOW_DATA_LOSS,完成全部修复。
  Chekcdb并不能完成全部的修复,我们需要更进一步的修复,用DBCC CHECKTABLE对每一个表做检查吧。
  表的列表可以用sysobjects内里得到,把OBJECTPROPERTY是IsTable的全部找出来检查一下吧,如许能够根本上办理问题了,要是还报告错误,试着把数据select into到另一张表检查一下。
  这些都做完了之后,把全部索引、视图、存储过程、触发器等重新建立一下。DBCC DBREINDEX也允许以帮你一些忙。
 


    文章作者: 福州军威计算机技术有限公司
    军威网络是福州最专业的电脑维修公司,专业承接福州电脑维修、上门维修、IT外包、企业电脑包年维护、局域网网络布线、网吧承包等相关维修服务。
    版权声明:原创作品,允许转载,转载时请务必以超链接形式标明文章原始出处 、作者信息和声明。否则将追究法律责任。

TAG:
评论加载中...
内容:
评论者: 验证码: