rollback 回滚的意思。 就是数据库里做修改后 ( update ,insert , delete)未commit 之前 使用rollback 可以恢复数据到修改之前。
这种情况的数据恢复只能利用事务日志的备份来进行,所以如果你的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等 *** 作,那么是无法利
用上述方法来恢复数据的
其实回滚简单理解就是之前 *** 作的反向 *** 作,在addtable1中定义了插入方法,与之相反,回滚的话就是定义一种删除方法,把之前插入的数据删掉就好了。这个你应该可以做到的吧!
还有给你个忠告,以后做数据库 *** 作的时候,最好先备份数据库,这是防止这种情况发生的最简便的方法。
另外,当你要对数据库进行相应的 *** 作的时候,提前分析好回滚 *** 作,特别是逻辑,回滚很容易因为逻辑关系似的数据库面目全非,因为对数据库的 *** 作很多是在 *** 作时候是1-〉2->3->4这样的逻辑,回滚的时候就要进行2->1->4->3这样的逻辑。
如果不行的话再给我留言
朋友:
oracle中有两样东西是用来记录历史的
一、重做日志 REDO(作用就是当你8点做了很多事情,到10点由于数据库8点到10点 *** 作的某个文件坏了,那么8点到10点的的东西全都不见了,但是REDO还在。你就可以用REDO来做重做你8点到10点所做的事,REDO就是记录了这样的事!)
二、回滚段 UNDO (作用就是当你后悔做了某些事之后就可以回到以前,但是在人间可是没有后悔要卖的哦。如你无意删除一个表,你就可以用rollback命令来回滚,它利用的就是oracle 的撤消表空间记录的内容。当然这个表空间满了的时候也就不能回滚到它没记录的内容了。)
以上就是关于数据库中的rollback怎么个使用法。。。全部的内容,包括:数据库中的rollback怎么个使用法。。。、sql 回滚语句、请问:C# 在做项目中,如何处理 对数据库 *** 作的事务回滚等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)