commit和rollback
COMMIT过程
·已经在 SGA(系统全局区域)中产生了回滚段(Rollback segment)记录。
·已经在 SGA 中产生了修改数据块。
·已经在 SGA 中产生了上面两条的缓冲重做(redo)。
·取决于上面 3 项的大小和消耗的时间,一部分上面的数据可能已经刷新到硬盘上。
·已经获得所有的锁定。
当 COMMIT(提交)时,所有剩下的工作是:
·为事务产生一个系统改变号(System Change Number,SCN)。
·LGWR 把所有余下的缓冲区中的重做日志条目存储到硬盘上,并且在联机重做日志文件中记录
SCN。实际上,这个步骤就是 COMMIT。如果出现这个步骤,就已经提交了。删除了事务条目,意味
着已经提交了。在 V$TRANSACTION 视图中的记录将“消失”。
·释放会话占用的所有锁定,释放在入队列等待中被占用锁定的每个事项。
·访问多个修改事务块,如果它们仍在缓冲区高速缓存中,用快速模式访问和“清除”。
·像看到的一样,处理 COMMIT 只有很少的工作要做。时间最长的总是 LGWR 执行的操作,因为
它是物理硬盘的输入/输出(I/O)。LGWR 消耗的时间是由做日志缓冲区已经释放的内容限定的。LGWR
不会存储所有的工作,而且,当操作进行时,它将增加释放后台重做日志缓冲区中的内容。这样可以
立即释放所有重做(redo)的内容,避免 COMMIT 后等待过长时间。当
Rollback过程
·已经在 SGA 中产生了回滚段记录。
·已经在 SGA 中产生了修改数据块。
·已经在 SGA 中产生了上面的两条重做缓冲信息。
·取决于上面三项的大小和消耗的时间,一部分上面的数据可能已经刷新到硬盘上。
·已经获得所有的锁定。
当 ROLLBACK 的:
·撤捎所有己做的修改。这通过从 ROLLBACK(undo)段读取数据来完成,实际上就是逆向操作。
如果插入了一行,ROLLBACK 删除它。如果更新了一行,ROLLBACK 将逆向更新。如果删除了一行,
回滚将重新插入它。
commit和rollback的更多相关文章
- JDBC Tutorials: Commit or Rollback transaction in finally block
http://skeletoncoder.blogspot.com/2006/10/jdbc-tutorials-commit-or-rollback.html JDBC Tutorials: Com ...
- mysql事务,START TRANSACTION, COMMIT和ROLLBACK,SET AUTOCOMMIT语法
http://yulei568.blog.163.com/blog/static/135886720071012444422/ MyISAM不支持 START TRANSACTION | BEGIN ...
- 14.5.2.2 autocommit, Commit, and Rollback
14.5.2.2 autocommit, Commit, and Rollback 在InnoDB,所有的用户活动发生在一个事务里, 如果自动提交模式是启用的, 每个SQL语句形成一个单独的事务.默认 ...
- 14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚
14.3.2.2 autocommit, Commit, and Rollback 自动提交 提交和回滚 如果自动提交模式被启用,在InnoDB里, 所有的用户活动发生在一个事务里, 每个SQL语句 ...
- flume-sink报错 java.lang.IllegalStateException: close() called when transaction is OPEN - you must either commit or rollback first
1. 确认代码无误(根据情况修改,表示若获得不了数据不会自动commit或者rollback): Event event = channel.take(); if (event == null) { ...
- Fescar: Fast & Easy Commit And Rollback
Fescar is an easy-to-use, high-performance, java based, open source distributed transaction solution ...
- 说commit,rollback
事务执行失败后,看做的是commit还是rollback:commit是把执行成功的部分提交了,rollback就是全回滚了.如果rollback失败了,此时不处理,等到客户端断开,MySQL内部默认 ...
- oracle 基础知识(五)--回滚(commit和rollback)
一,commit 01,commit干了啥 commit 就是提交的意思.也就是当你把99%的东西都做好了,然后你执行最后一步的操作...再commit前的话你可能啪啪啪啪啪,敲了几百条sql DML ...
- 转贴:PLSQL中 commit 和 rollback 的区别
PLSQL中 commit 和 rollback 的区别 原文链接:https://blog.csdn.net/jerrytomcat/article/details/82250915 一. comm ...
- 【SQL系列】从SQL语言的分类谈COMMIT和ROLLBACK的用法
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[SQL系列]从SQL语言的分类谈COMMIT和 ...
随机推荐
- php读取ini(init)文件
<?php header('content-type:text/html;charset=utf-8'); //读取.init文件 $config_file_path = './config/d ...
- 【FinancialKnowledge】拨备
一句话: 银行拨备就是银行贷款损失减值准备的俗称,其相当于为承担风险和损失的金融资产计提的准备金 通俗易懂的解释见:https://wallstreetcn.com/articles/3307725
- struts2中文件上传
注意点 private File image;//对应的就是表单中文件上传的那个输入域的名称,Struts2框架会封装成File类型的 private String imageFileName;// ...
- jetty maven插件端口设置
在jetty的maven插件中有两种方式设置jetty的端口(默认为:8080). 第一种,通过命令行,在启动jetty的时候设置:mvn -Djetty.port=8081 jetty:run 第二 ...
- 基于委托的C#异步编程的一个小例子 带有回调函数的例子
我创建的是一个winform测试项目:界面如下: 设置: 下面是代码: using System; using System.Collections.Generic; using System.Com ...
- [J2EE基础]初识JSP和Servlet
近期须要用到J2EE,就開始学习与J2EE相关的知识了. JSP是一种Javaserver端技术,它用于在网页上显示动态内容. Tomcat相关知识 JSP的运行过程 JSP的页面构成元素 JSP的凝 ...
- github 搜索技巧
1.关键词 + 指定开发语言 bitcoin language:javascript 2.关键词 + stars 数量 + forks 数量 bitcoin stars:> forks:>
- IIS6.0应用程序池回收(转载)
这段时间公司的程序经常出现问题,然后整个应用程序就不能访问了,我们的服务器版本:window 2003 SP1,IIS6.0,没有安装Microsoft Visual Studio .NET . 问题 ...
- Spark高级数据分析-第2章 用Scala和Spark进行数据分析
2.4 小试牛刀:Spark shell和SparkContext 本章使用的资料来自加州大学欧文分校机器学习资料库(UC Irvine Machine Learning Repository),这个 ...
- [svc][op]网站504无法访问问题处理
504 Gateway Time-out 网站出现了这种情况 架构是:tomcat+nginx, 想通过domain.com 跳转到www.domain.com. 客户端访问流程 客户端--dns-- ...