SqlServer2008误操作数据误操作数据(delete或者或者update)后恢复数据的方法后恢复数据的方法
实际工作中,有时会直接在数据库中操作数据,比如对数据进行delete或者update操作,当进行这些操作的时候,如果没有加上 where条件或者where条件不合理,那么导致的结果
可想而知,如果操作的又是线上数据库,那么这个后果将会非常严重。
当事情发生后,我们要想办法补救,针对于sqlserver2005数据库,有个很出名的工具Log Exploer。。具体操作使用大家可以自行搜索;针对于sqlserver2008也有这样的工具,但是大多
是需要付费的…我们尝试用 sqlserver的事务日志来恢复这些受影响的数据。
用事务日志恢复数据,需要两个必要条件:
1、正确的完整数据库的最后一次备份、正确的完整数据库的最后一次备份
如果没有数据库完整备份,是不能做事务日志备份的,所以建议创建数据库时,恢复模式一项,应当选择’完整’。
2、正确的即时点、正确的即时点
即所要恢复到数据的时间点,这个时间点一般选择误操作发生时间往前一点的时间点,所以当误操作发生时,应尽量记下这个时间点,不然可能导致恢复的数据不够准确。比如,
误操作发生于16:00,这个时间点我们可以选择15:59,如果选择的太靠前,比如15:30,那么15:30–15:59这段时间内的数据就不能被恢复了。
下面记录具体的操作步骤:
首先新建一个数据库dbtest,注意创建数据库时恢复模式一项选择’完整’,在数据库中新建一个Table_1,并插入一些数据,然后对该数据库做一个完整备份。
这个备份,主要是模拟实际工作中对数据库的备份,实际中由于数据库可能很大,所以一般备份是一天或者两天进行一次。
备份成功后,接着再往Table_1中插入几条数据, 模拟在原数据库基础上新增加的数据,然后执行一个sql语句:delete from Table_1,模拟误操作,并记录下时间,比如16:00.误操作发生
后,我们要赶紧进行事务日志的备份,我们就是根据此备份来还原数据的。
评论1
最新资源