数据库中的rollback怎么个使用法。。。

数据库中的rollback怎么个使用法。。。,第1张

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# 在做项目中,如何处理 对数据库 *** 作的事务回滚等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9290918.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存