【转载】通过sqlserver⽇志恢复误删除的数据
如果你已经急的焦头烂额,看到这篇⽂章的时候,请你换个坐姿,深呼吸⼏次,静下⼼来将这篇⽂章读完,也许你的问题迎刃⽽解。
我遇到的情况是这样的,⽹站被植⼊⽊马,盗取了我的fig⽂件,fig⽂件⾥⾯的数据库连接字符串没有加密,⽽我的数据库远程连接⼜没有做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 FORMATsqlserver备份表语句
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、在【完整备份->现在】这个时间段内,你进⾏过数据库⽇志的较⼤程度压缩,还原起来恐怕也困难了。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。