SQLSERVER2012误删数据恢复过程

  因为长时间从事企业应用系统开发,前往用户现场升级、调试系统是比较常作的事情,可是就在周一,因为同事的失误在毫无知觉的状况下误删了生产数据库几乎全部的数据。当我发现的那一刻,感受头发都立起来了,心想这他娘的是要领盒饭了。
  为了迅速恢复系统的使用,在当时的状况下当即关闭相关系统的访问入口,先后共花费不到五分钟。通过思考,当即将最近的一次备份文件进行还原,从而保证了系统的正常运行,可是此举也不可避免的可能会丢掉某些数据。html

  另外事情已经发生,如何作才能为之后的数据恢复作准备呢,如下是本身的观点:sql

一、务必冷静,事情已经发生不可慌乱。数据库

二、当即查看当前时间,最好可以精确到秒,并作记录。并发

三、应当即向直接上级反映此事,不可隐瞒,防止事态扩大。高并发

四、若是权限容许,应当当即中止相关应用,防止有新的数据写入数据库。工具

  过后一直不放心,当下次再出现这种状况的时候,该如何对数据进行数据恢复,尽量的减少损失呢(作不到彻底避免损失),所以从网上查阅大量资料并进行整理。sqlserver

  以前生产数据库使用的是sqlserver2000和2005,当时也出现过误删数据的状况,用Log Exlorer For SQL很轻松就恢复了数据,如今数据库升级到2012了这个工具没法使用了,所以只能采用其余办法,在此须要特别鸣谢CSDN一位大神的文章,网址:http://blog.csdn.net/dba_huangzj/article/details/8491327spa

  原文是SQLSERVER2008R2,本次试验环境是2012版本。根据文章中过程的介绍,进行了整个过程的操做,可是仍是未能一遍完成,如今在本身的操做过程当中进行总结,并分享。.net

在此构建一个新的数据库模拟数据恢复全过程。3d

一、构建新数据库以及写入一些数据


二、作一次完整备份,这个是前提,没有一份完整备份文件是没法进行接下来的操做的。

注意:如上图所示,恢复模式必定要说完整,若是是其余类型那恐怕就没有下文了。通常来说新建数据库的时候,默认不要去改恢复模式这个属性。

三、写入一条新数据


四、删除数据,让悲剧重现,记住此时要记录时间点,在现实中每每会因为慌乱忘记记录,可是但愿看了这个文章以后可以记住此事。


好既然悲剧已经发生,也有了心理准备和恢复前准备,此刻最好看一下系统时间。接下来就要演示如何进行数据恢复。 


五、作事务日志备份,作事务日志备份须要注意一下一点,如图所示

备份模式请选择事务日志,备份路径自行决定

 

进入选项,将可靠性第一、2勾选,事务日志选择第二个,压缩属性能够不选择.点击肯定备份成功,此时数据库将显示为正在还原状态

注意:若是备份失败,请检查该数据库是否正在被占用,若是是请kill。

六、还原完整备份

数据库处于正在还原状态,右键数据库--任务--还原--文件和文件组,选择最近的一次完整备份。此时,须要在“选项”中选择第二种还原方式,具体以下图。

 

如上图,勾选完整数据备份文件。

如上图,恢复状态选择第二种,从字面意思就知道为何要选择这种。

七、接着还原备份的事务日志

完整备份还原完毕,接着要对事务日志进行还原,右键数据库--任务--还原--事务日志,以下图:

还原事务日志的时候须要特别注意“时间点”这个设置,其余不须要设置。

时间点选择为误删数据的时间点以前就能够恢复出误删的数据,因此以前强调要查看一下时间。以下图所示



点击肯定,在肯定等待还原成功,数据库变成可用状态。此时后再查询,以下图:



若是查询发现数据不是你想要的,那么能够重复上述的操做,从备份事务日志开始,而后最后选择时间点的时候在缩小范围。

以上,完整的演示了我的在恢复数据过程当中的总结。固然前提是容许这样干,固然大型电子商务系统、高并发系统应该不适用,确定也不会出现误删数据的状况,都有对应的解决方案避免此类状况发生。

转载:

[原创]LOG EXPLORER FOR SQL SERVER 4.2 (一)    http://www.cnblogs.com/whitney/archive/2008/08/22/1273879.html

实战 SQL Server 2008 数据库误删除数据的恢复         http://www.cnblogs.com/dudu/archive/2011/10/15/sql_server_recover_deleted_records.html

高版本sqlserver恢复工具 ApexSQL Log,要收费,听说有破解版,淘宝有售     https://www.apexsql.com/sql_tools_log.aspx

相关文章
相关标签/搜索