博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过sqlserver日志恢复误删除的数据
阅读量:4931 次
发布时间:2019-06-11

本文共 1294 字,大约阅读时间需要 4 分钟。

 

    如果你已经急的焦头烂额,看到这篇文章的时候,请你换个坐姿,深呼吸几次,静下心来将这篇文章读完,也许你的问题迎刃而解。

    我遇到的情况是这样的,网站被植入木马,盗取了我的web.config文件,web.config文件里面的数据库连接字符串没有加密,而我的数据库远程连接又没有做IP限制,黑客通过数据库客户端连上我的数据库后,将所有的表都Delete掉了,所以大家一定要有一个好习惯将数据库连接字符串加密或者对远程访问数据库的IP作限制

    因被黑客Delete掉所有数据的具体时间点我不清楚,所以我就用了一个工具Log Explorer来查看分析数据库日志,看具体是什么时候被Delete掉的(若你已经知道想要还原的时间点,就不用使用此工具啦),至于Log Explorer如何安装使用的,这里就不赘述了,去百度一搜一大堆,安装的时候Client和Server都选,然后安装中会有一步让你输入数据库的用户名和密码,其他不懂的就疯狂下一步吧。

    

    通过Log Explorer工具我查看到被删除的时间点是:07-10 09:46:29.880,那我一会把数据还原到07-10 09:46:29.879就好咧

下面开始言归正传的进行恢复操作了

1、将数据库日志备份一下,用T-Sql语句

1
BACKUP LOG shua TO DISK='c:\shua_log.bak' WITH FORMAT

 

 

2、因我的数据库每天都有自动完整备份,找一个最近时间的完整备份,来还原一下,这里我不往旧库覆盖了,直接还原成一个新的数据库shua2

用SQL Server Management Studio工具进行界面操作吧,写sql语句还原太复杂了,不会啊。

对着数据库->右击->还原数据库,下图是我在[还原数据库]界面->[常规]选项卡页的填写情况

然后点【选项】选项卡页,注意这一步非常重要哦

点击【不对数据库执行任何操作,不回滚来提交的事务】,然后确定。如果数据库比较大,这个还原要等很长时间,出去吸几口新鲜空气吧,大功就要告成了。

 

3、待数据库还原成功后,是这个状态

显示(正在还原...),对着shua2这个数据库右击->任务->还原->还原事务日志。

如上图所填,先填刚开始备份的日志c:\shua_log.bak,然后勾选[还原],最重要的是选择时间点,可惜这个时间点不能选毫秒,所以我就选了29秒,这个时候会还原29.0秒以前的数据,而我的数据是从29.880秒被删除的,所以选29秒妥妥的;为什么我没有选择28秒呢?因为我的数据库每一秒的改变都很大,所以我尽可能的缩小这个时间范围。

填好后,点【确定】吧,大功告成了。现在数据库已恢复成2014-07-10 09:46:29.0时的状态,自然的我那些表数据都回来了。

 

 

ps:

    1、若您的数据库从来没有完整备份过,就不能用此办法恢复了;

    2、在【完整备份->现在】这个时间段内,你进行过数据库日志的较大程度压缩,还原起来恐怕也困难了。

转载于:https://www.cnblogs.com/DaDaOnline/p/4106350.html

你可能感兴趣的文章
IOS UI二
查看>>
ES6新增const常量、let变量
查看>>
Android 隐式 Intent 跳转注意事项
查看>>
hdu1556 Color the ball
查看>>
浏览器自动化项目【构思】(完)
查看>>
第一次开通博客了
查看>>
hihocoder #1190 : 连通性·四 点双联通分量
查看>>
Panoramic Photography
查看>>
排序算法之插入排序、冒泡排序和选择排序
查看>>
对于Java静态内部类的理解
查看>>
「零秒思考」是个神话,不过这款笔记术你值得拥有zz
查看>>
suricata.yaml (一款高性能的网络IDS、IPS和网络安全监控引擎)默认配置文件(图文详解)...
查看>>
Hadoop Hive概念学习系列之hive里的视图(十二)
查看>>
UVa 11728 Alternate Task
查看>>
2016.年末总结
查看>>
软工学习心得(1)
查看>>
ASP.NET一个简易的WebServer,用控制台程序模拟IIS 托起web服务
查看>>
python中subprocess.Popen的args和shell参数的使用
查看>>
【BZOJ-4422】Cow Confinement 线段树 + 扫描线 + 差分 (优化DP)
查看>>
Java NIO系列教程(八) SocketChannel
查看>>