`
Appleses
  • 浏览: 346678 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Oracle数据块(block)简单介绍--ITL事物槽

 
阅读更多

下边我们重点看一下ITL事物槽。Oracle的每个数据块中都有一个或者多个事务槽,每一个对数据块的并发访问事务都会占用一个事务槽。 
每个事物都会ITL事物槽由槽位号、XID、Uba、Flag、Lck、Scn/Fsc几部分组成。

 

Itl                      Xid                                Uba               Flag   Lck        Scn/Fsc
0x01   0x0006.020.00000271  0x00800205.0257.13  C---    0  scn 0x0000.001732c4 
0x02   0x0008.006.00000279  0x00800351.0278.15   ----    1   fsc 0x0000.00000000 

 

ITL(interested transaction list)  槽位号。

 

XID(transaction id) 事务ID,在回滚段事务表中有一条记录和这个事务对应。Xid组成:Undo Segment Number +Transaction Table Slot Number+ Wrap 。

 

UBA(undo block address)   回滚段地址,该事务对应的回滚段地址。Uba组成:回滚块地址(undo文件号和数据块号)+回滚序列号+回滚记录号 。

SQL> select xidusn,xidslot,xidsqn,ubafil,ubablk,ubasqn,ubarec from v$transaction; 
    XIDUSN    XIDSLOT     XIDSQN     UBAFIL     UBABLK     UBASQN     UBAREC 
    ---------- ---------- ---------- ---------- ---------- ---------- ---------- 
         8          6            633               2          849          632           21 

 

Flag:事务标志位。这个标志位就记录了这个事务的操作状态,各个标志的含义分别是: 
C = transaction has been committed and locks cleaned out   --事物已经提交,锁已经被清除 
B = this undo record contains the undo for this ITL entry 
U = transaction committed (maybe long ago); SCN is an upper bound  --事物已经提交,但是锁还没有清除 
T  = transaction was still active at block cleanout SCN   --块清除的SCN被记录时,该事务仍然是活动的,块上如果有已经提交的事务,那么在clean ount的时候,块会被进行清除,但是这个块里面的事务不会被清除。

 

Lck:表示这个事务所影响的行数。我们看到01号事物槽Lck为0,因为该事物槽中的事物Flag为C,证明该事物
已经提交,锁也被清楚掉了,该事物槽可以被重用了。02号事物槽Lck为1,是因为我对第一行做了一个更新,并且没有提交,Flag为----说明该事物是活动的。 

 

Scn/Fsc:Commit SCN或者快速提交(Fast Commit Fsc)的SCN。 
每条记录中的行级锁对应Itl条目lb,对应于Itl列表中的序号,即那个事务在该记录上产生的锁。

 

详细参考:http://czmmiao.iteye.com/blog/1495332

0
1
分享到:
评论

相关推荐

    oracle ITL事务槽

    Oracle ITL(Interested Transaction List)事务槽是数据库管理系统Oracle中用于处理并发事务处理的重要组成部分,主要存在于数据块的内部。ITL的主要职责是记录在数据块中发生的事务,无论是已提交还是未提交的。每...

    Oracle中关于事务槽(ITL)

    Oracle数据库中的事务槽(ITL, Incident Transaction List)是数据块内部管理并发事务的重要机制。在Oracle中,每个数据块可以包含多个事务槽,用于跟踪并发事务对数据块的更改。当事务对数据块进行读写操作时,就会...

    BLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdf

    1. **增加表空间的初始化参数**:可以通过调整表空间的初始化参数来增加每个块中的ITL槽数量。例如,可以考虑调整`_row_lock_wait_timeout`和`_row_lock_max_waits`等参数。 - `_row_lock_wait_timeout`:设置...

    Oracle中关于事务槽(ITL).ppt

    主要针对oracle事务槽讲解。一本很经典的电子书。分享给大家

    Oracle数据块损坏知识.pdf

    为应对数据块损坏,Oracle数据库提供了多种机制来预防和检测数据块的损坏,以及在数据块损坏发生后的修复手段。 首先,我们需要了解Oracle数据块的基本概念。Oracle数据块是Oracle数据库中最小的I/O单位,同时也是...

    【故障处理】队列等待之TX 等待事件处理.docx

    1. **增加块大小**:如果可能,增大表空间的块大小可以增加每个块中可用的ITL条目数量,从而减少竞争。 2. **调整并发度**:限制同时运行的事务数量,以减少对ITL的需求。 3. **行级锁定优化**:通过减少行级锁定...

    NIST (ANSI/NIST-ITL 1-2000) 库(适用于 Windows):读取和写入 ANSI/NIST-ITL 1-2000 格式的文件。-matlab开发

    ANSI/NIST-ITL 1-2000 是美国国家信息系统标准定义的指纹、面部、疤痕和纹身 (SMT) 信息交换的数据格式。 NIST 文件的优点是能够在一个文件中包含有关该人的多个图像和其他类型的数据,这简化了参与方之间的生物...

    ITL-ports:ITL的端口

    ITL(Interoperable Telemetry Language)是一种用于设备间数据传输和互操作性的标准化语言,主要应用于物联网(IoT)和远程监控系统。在“ITL-ports”这个主题中,我们将深入探讨ITL如何通过端口实现不同设备之间的...

    新建文件夹 (3)_matlab_tx-ITL_

    findp_txITL_beta_cell tx-ITL系统仿真通过输入SNR Nc 等数值进行仿真计算

    对于Oracle锁的一些理论总结

    Oracle通过数据块(block)中的ITL(Intent To Lock)事务列表来记录事务对行的修改,每行的头部有一个Lock byte标识锁定状态。未提交的事务使用ITL的SLOT和Lock byte表示被封锁的行。此外,Oracle的行级锁实际上是...

    oracle索引说明[参照].pdf

    例如,`Itl`部分展示了与块相关的事务信息,包括槽ID、事务ID、撤销块地址、标记、锁信息和事务SCN。此外,我们还可以通过`DBMS_UTILITY.DATA_BLOCK_ADDRESS_FILE(rba)`和`DBMS_UTILITY.DATA_BLOCK_ADDRESS_BLOCK...

    oracle索引说明

    - **Itl**:表示相关的事务槽,包括槽ID、事务ID、撤销块地址、标记、锁信息以及事务SCN。 #### 通用的索引块头 ```plaintext header address 153168988 = 0x9212c5c kdxcolev 0 KDXCOLEV Flags=--- kdxcolok 1 ...

    专题之Undo工作原理剖析

    为了实现这一功能,Oracle利用了多种机制,其中最重要的是ITL(Intent To Lock)条目和Undo数据。 在Block Header中包含了ITL(Intent To Lock)条目,这些条目记录了Undo Block Address、Transaction ID以及SCN...

    string-calculator:ITL-TDD培训讲习班练习

    创建一个计算器,使您可以使用具有以下特征的int add(字符串数字)方法输入简单的字符串: 该方法可以有0、1或n个数字,并且将返回它们的总和(对于空字符串,它将返回0),例如: 输入: “” ->输出: 0 。...

    BLOG_Oracle_lhr_Oracle死锁的分类及其模拟.pdf

    Intent Lock List(ITL)是Oracle中用于存储事务锁定信息的数组,位于数据块中。每个数据行都有一个与之关联的ITL条目,用于记录事务对行的操作状态。当并发事务请求同一行的锁定时,ITL条目可能会成为死锁的源头。 ...

    Oracle.表与锁

    在数据块的存储结构方面,数据块由头部和可用空间组成,头部包含了Block Header和Data Block Header,其中ITL(Intent To Log)列表记录了当前持有块内数据锁的事务信息。Data Header则包含了表、记录数量以及可用...

    ORACLE数据库并发访问控制机制及访问冲突的解决方法.pdf

    当用户进程找到被更新数据块的相应数据行时,在该行的头部设置一个行级锁,并记录当前事务使用的ITL槽号。当其他用户试图更新同一数据行时,他们必须等待当前事务完成后才能进行操作。锁定机制通过队列实现,并按照...

Global site tag (gtag.js) - Google Analytics