利用事务日志来恢复Update、Delete误操作引起的数据丢失
可能有不少朋友遇到过这样的问题:
update或delete语句忘带了where子句,或where子句精度不够,执行之后造成了严重的后果,
这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。 以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进
进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
backup log dbName to disk='fileName'
2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢
复
restore database dbName from disk='fileName' with norecovery
3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻
restore log dbName from disk='fileName'
with stopat='date_time'以上这些操作都可以在SQL SERVER企业管理器里完成,难度不大当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利
用上述方法来恢复数据的...
可能有不少朋友遇到过这样的问题:
update或delete语句忘带了where子句,或where子句精度不够,执行之后造成了严重的后果,
这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的SQL没有进行相应的全库备份
或不能备份日志(truncate log on checkpoint选项为1),那么就无法进行数据的恢复了,或者
只能恢复到最近一次的备份的数据了。 以下简单说明恢复数据方法:
1,如果误操作之前存在一个全库备份(或已有多个差异备份或增量备份),首先要做的事就是进
进行一次日志备份(如果为了不让日志文件变大而置trunc. log on chkpt.选项为1那你就死翘了)
backup log dbName to disk='fileName'
2,恢复一个全库备份,注意需要使用with norecovery,如果还有其他差异或增量备份,则逐个恢
复
restore database dbName from disk='fileName' with norecovery
3,恢复最后一个日志备份即刚做的日志备份,指定恢复时间点到误操作之前的时刻
restore log dbName from disk='fileName'
with stopat='date_time'以上这些操作都可以在SQL SERVER企业管理器里完成,难度不大当然,如果误操作是一些不记日志的操作比如truncate table,select into等操作,那么是无法利
用上述方法来恢复数据的...
解决方案 »
- 第三方的全文检索,你们用过哪些?发出来讨论
- .net读取匹配 xml配置文件数据
- 哪个朋友帮帮忙看一下,我的注册信息添加不到数据库中怎么回事啊?
- 如何用js清空整个页面上的值
- asp.net中的gridview插入图片问题
- 关于添加wap网址到手机标签的问题
- 关于asp.net调用C++写的COM,弄了好久也没解决,请大家帮看看,谢谢
- asp.net(c#)使用md5加密 如何获得asp中md5同样的值?
- 请问在一个类文件里面如果才能像server.UrlEncode一样编码,我在类文件用总是提示找不到命名空间
- 关于Asp.Net验证的设置问题!!!
- 用水晶报表怎样分页形式显示一些数据, 希望各位大虾帮帮忙
- 图像显示问题?
http://expert.csdn.net/Expert/topic/2343/2343412.xml?temp=.8866541
将数据库的一些数据更新了,想要恢复
http://expert.csdn.net/Expert/topic/2211/2211894.xml?temp=.399914
restore log dbName from disk='fileName'
with stopat='date_time'
用上面这句话进行数据库恢复时有一下错怎么解决啊
服务器: 消息 3101,级别 16,状态 2,行 1
因为数据库正在使用,所以未能获得对数据库的排它访问权。
服务器: 消息 3013,级别 16,状态 1,行 1
RESTORE LOG 操作异常终止。