sql server 2012 删除数据恢复ApexSQLLog 2016

2017.612星期一,今天误删除了一个表的1万多条数据,数据库sql server 2012,网上找了很多恢复方法,因为没有备份,只能借助第三方工具,另外,就算有备份也无法使用,因为这个表是实时插入的,备份不可能跟上插入速度。

想到的恢复原理是通过数据库log恢复,百度了很多个软件,有个只支持sql server低版本,最后找到了ApexSQLLog安装试用版发现有条数限制,又找到了ApexSQLLog2016破解版:http://download.csdn.net/detail/wuxi_88/9637271 感谢破解大哥为我国数据库做的贡献!

过程:

1.数据库脱机命令

use master

ALTER DATABASE 数据库名 SET OFFLINE WITH ROLLBACK IMMEDIATE
一定要加 WITH ROLLBACK IMMEDIATE ,强制断开数据库连接,否则等很长时间无响应,因为它在等待其他连接断开,如果没加后面with语句或在界面数据库点右键脱机很可能一直等待,可以强制kill其他连接,用这大哥博客的存储过程:http://www.cnblogs.com/safezone/articles/1251224.html


2.复制到本地

  就是直接复制粘贴,如果脱机成功,则可以复制数据库文件:数据库名.mdf和数据库名.ldf两个文件


3.数据库联机

use master

ALTER DATABASE 数据库名 SET ONLINE WITH ROLLBACK IMMEDIATE

数据库联机一定要使用超级管理员权限的windows用户登录并用windows身份,其他用户可能无权限联机,微软在这里太坑爹了,同一个用户可以脱机却不能联机,让我又找了超级管理员用户重新登录windows操作的,耽误了半个多小时联系同事。


4.附加数据库到本地sql server


5.找回删除数据

启动ApexSQLLog2016破解版,提示更新,点cancel

连接数据库next,选择日志文件、undo\redo、操作方式为delete、选择表、选择保存输出文件目录、finish,

log文件4G,需要等一段时间,大概半小时之内。下图: