MsSQL利用日志备份恢复到某一时间点

在做update或delete操作时忘带where条件或where条件精度不够,执行之后导致数据丢失或更新错误等严重后果,如果你的数据库已有相应的完整备份,并且不能备份日志(truncate log on checkpoint选项为1)可以利用事务日志的备份来进行数据恢复. 

恢复数据具体步骤如下:

1,首先要做的事就是进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那就没法子了) 
    backup log dbName to disk='D:\NorthwindCS_log_20140908_2.bak'
2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢复
    restore database dbName from disk='D:\NorthwindCS_full_20140901_2.bak' with norecovery
3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻
    restore log dbName from disk='D:\NorthwindCS_log_20140908_2.bak'
    with stopat='2014-03-16 11:10:00.740'

truncate table,select into等操作并不记录日志,无法利用日志来恢复数据的... 

posted @ 2015-03-16 11:15  hgmzas  阅读(258)  评论(0)    收藏  举报