博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Know more about commit
阅读量:5221 次
发布时间:2019-06-14

本文共 1424 字,大约阅读时间需要 4 分钟。

COMMIT操作是RDBMS中事务结束的标志,在Oracle中与commit紧密相关的是SCN(System Change Number)。 引入SCN的最根本目的在于:
  1. 为读一致性所用
  2. 为redolog中的记录排序,以及恢复
SCN由SCN Base和Scn Wrap组成,是一种6个字节的结构(structure)。其中SCN Base占用4个字节,而SCN wrap占用2个字节。但在实际存储时SCN-like的stucture常会占用8个字节。
ub4 kscnbas ub2 kscnwrpstruct kcvfhcrs, 8 bytes                 @100                              Creation Checkpointed at scn      ub4 kscnbas                        @100      0x000a8849      ub2 kscnwrp                        @104      0x0000
在Oracle中一个事务的开始包含以下操作:
  1. 绑定一个可用的rollback segment
  2. 在事务表(transaction table)上分配一个必要的槽位
  3. 从rollback segment中分配undo block
注意system rollback segment是一种特殊的回滚段,在10g以后普通回滚段的类型都变成了"TYPE2 UNDO",而唯有system rollback segment的类型仍为"ROLLBACK",这是由其特殊性造就的:
SQL> col segment_name for a20SQL> col rollback for a20SQL> select segment_name,segment_type from dba_segments where segment_type='ROLLBACK';SEGMENT_NAME         SEGMENT_TYPE-------------------- ------------------SYSTEM               ROLLBACK
System rollback segment面向的是SYSTEM表空间上数据字典对象相关事务的数据,以及由对用户数据产生的递归SQL调用所产生的数据。 Oracle不使用基于内存锁管理器的行锁,Oracle中的row lock是基于数据块的。数据块中的Interested Transaction List(ITL)是行锁的重要标志。 ITL的分配遵循以下的原则:
  1. 找出未被使用的ITL
  2. 找出最老的已经事务提交的ITL
  3. 做部分的块清理,直到有可用的ITL
  4. 扩展ITL区域,一条ITL占用24字节
当事务提交COMMIT时,需要完成以下步骤的操作:
  1. 得到一个SCN值
  2. 使用得到的SCN更新事务表中的槽位
  3. 在redo log buffer中创建一条commit记录
  4. 将redo log buffer刷新到磁盘上的在线日志文件
  5. 释放表和行上的锁(may cause delayed block cleanout)

转载于:https://www.cnblogs.com/macleanoracle/archive/2013/03/19/2967826.html

你可能感兴趣的文章
Java集合框架学习
查看>>
第16周总结
查看>>
将Cent0S 7的网卡名称eno33改为eth0
查看>>
透明度Opacity多浏览器兼容处理
查看>>
oracle 常用简单命令语句
查看>>
【机器学习_3】常见术语区别
查看>>
Oracle基础 数据库备份和恢复
查看>>
C#编程时应注意的性能处理
查看>>
Java集合--概述
查看>>
1-TwoSum(简单)
查看>>
css box模型content-box 和border-box
查看>>
Fragment
查看>>
比较安全的获取站点更目录
查看>>
php_mvc实现步骤八
查看>>
ThinkPHP中的四种路由形式
查看>>
研究性能测试工具之systemtap入门指南(二)
查看>>
R语言数据类型
查看>>
Oracle 创建表分区
查看>>
CCAction、CCFiniteTimeAction、CCSpeed、CCFollow
查看>>
001—19考研计算机基础课程数据结构导学❤微信公众号【轻松学道理】免费分享❤...
查看>>