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和 ...
随机推荐
- Linux程序存储结构与进程结构 堆和栈的差别
摘要:本文主要讲述了Linux系统中.程序存储结构(代码区.数据段和BBS区)与进程的基本结构(代码区.数据段.BBS区.堆和栈).以及堆和栈的差别. Linux程序存储结构与进程结构 1.Linux ...
- 使用SQL命令查看MYSQL数据库大小
mysql> mysql> use information_schema ; /*切换到information_schema数据下*/ Database changed mysql> ...
- Python中给文件加锁
首先要引入库import fcntl打开一个文件f = open('./test')对该文件加密:fcntl.flock(f, fcntl.LOCK_EX)这样就对文件test加锁了,如果有其他进程要 ...
- 模拟循环单击事件实现layout中间panel全屏
jquery提供了toggle方法 toggle() 方法切换元素的可见状态. 如果被选元素可见,则隐藏这些元素,如果被选元素隐藏,则显示这些元素. 语法 $(selector).toggle(spe ...
- [转载]Scikit-learn介绍几种常用的特征选择方法
#### [转载]原文地址:http://dataunion.org/14072.html 特征选择(排序)对于数据科学家.机器学习从业者来说非常重要.好的特征选择能够提升模型的性能,更能帮助我们理解 ...
- stl之hash_multiset
hash_multiset的元素不会被自己主动排序
- AssionShop开源B2C电子商务系统-(一)用例图(转载)
这篇文章,将有实质的进展.先把大体的需求整理了一份用例图,自认为粒度做的已经很细了,再细就没法搞了.我还是坚信一个原则:自己业余搞的东西千万不要 想一口吃个胖子,这样很容易项目就搞流产了~,废话不多说 ...
- Apache 虚拟目录和默认首页的设置
Apache虚拟目录和默认首页的设置,用apache服务器的朋友必须要懂的. 虚拟目录 1.找到"conf/httpd.conf" 文件 2.在节点:<IfModule al ...
- atitit.http get post的原理以及框架实现java php
atitit.http get post的原理以及框架实现java php 1. 相关的设置 1 1.1. urlencode 1 1.2. 输出流的编码 1 1.3. 图片,文件的post 1 2. ...
- Java中数据库连接的一些方法资料汇总
Java中Connection方法笔记 http://www.cnblogs.com/bincoding/p/6554954.html ResultSet详解(转) https://www.cnbl ...