1 建表,插入数据
SQL> create table test(id number, name varchar2(10));
Table created
SQL> insert into test values(1, 'a');
1 row inserted
SQL> select id,
2 name,
3 rowid,
4 dbms_rowid.rowid_relative_fno(rowid) file#,
5 dbms_rowid.rowid_block_number(rowid) block#
6 from test;
ID NAME ROWID FILE# BLOCK#
---------- ---------- ------------------ ---------- ----------
1 a AAANLOAAEAAAAMAAAA 4 768
2 Dump块
SQL> alter system dump datafile 4 block 768;
System altered
从udump文件中Trace文件可以得信息:
=======================================================================================
……
Itl Xid Uba Flag Lck Scn/Fsc
0x01 0x0008.012.0000020d 0x008000af.01cf.1d ---- 1 fsc 0x0000.00000000
0x02 0x000a.007.000001cd 0x0080035c.0148.0d --U- 1 fsc 0x0007.001a603f
……
=======================================================================================
ITL中的xid:0x0005.020.0000020e是由undo信息组成的:xidusn.xidslot.xidsqn
ITL中的uba:0x0080024d.0129.1f是由uba(undo block address).UBASQN.UBAREC
undo block address是0080024d,是一个16进制数,可以通过如下函数转换为UBAFIL和UBABLK
3 分解xid
SQL> select to_number('0008','xxxxx') xidusn from dual;
XIDUSN
----------
8
SQL> select to_number('012','xxxxx') xidslot from dual;
XIDSLOT
----------
18
SQL> select to_number('0000020d','xxxxxxxxx') xidsqn from dual;
XIDSQN
----------
525
4 分解uba
SQL> select dbms_utility.data_block_address_file(to_number('008000af','xxxxxxxx')) UBAFIL from dual;
UBAFIL
----------
2
SQL> select dbms_utility.data_block_address_block(to_number('008000af','xxxxxxxx')) UBABLK from dual;
UBABLK
----------
175
SQL> select to_number('01cf','xxxxxxxxx') UBASQN from dual;
UBASQN
----------
463
SQL> select to_number('1d','xxxxxxxxx') UBAREC from dual;
UBAREC
----------
29
5 dump信息和v$transaction比较
SQL> select xidusn, xidslot, xidsqn, ubafil, ubablk, ubasqn, ubarec from v$transaction;
XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC
---------- ---------- ---------- ---------- ---------- ---------- ----------
8 18 525 2 175 463 29
6 数据块锁定
在另一个会话中操作:
SQL> insert into test values(2, 'a');
1 row inserted
SQL> select id,
2 dbms_rowid.rowid_relative_fno(rowid) file#,
3 dbms_rowid.rowid_block_number(rowid) block#
4 from test;
ID FILE# BLOCK#
---------- ---------- ----------
2 4 767
第一个会话由于未提交, 而锁定了数据块768, 所以第二个会话新插入的数据在新的块767, 与之前的768不同.
分享到:
相关推荐
ITL(Interested Transaction List)是Oracle数据块内部的一个组成部分,用来记录该块所有发生的事务,一个itl可以看作是一个记录,在一个时间,可以记录一个事务(包括提交或者未提交事务)。当然,如果这个事务已经...
Oracle中关于事务槽(ITL)
主要针对oracle事务槽讲解。一本很经典的电子书。分享给大家
BLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdfBLOG_【故障处理】Oracle_lhr_队列等待之TX - allocate ITL entry案例.pdf
队列等待之TX - allocate ITL entry引起的死锁处理 Buffer busy waits异常等待事件分析与处理。 Buffer latch异常等待事件分析与处理。 Db file parallel read异常等待事件分析与处理。 Db file sequential read异常...
springboot-postgres-kafka:kafka ITL Hadoop
ITL端口 ITL的端口
网上搜集的一些关于数据块结构、ITL事务槽的详细解释
Bug 9865890 ITL WASTING A LOT OF SPACE IN INDEXES
findp_txITL_beta_cell tx-ITL系统仿真通过输入SNR Nc 等数值进行仿真计算
cobit itsm book. This book describes good it managemant implementation. Good for it profwssionals
1 2 2 D:\ORACLE\ORADATA\XJ\UNDOTBS01.DBF 4096 3 3 3 D:\ORACLE\ORADATA\XJ\DRSYS01.DBF 4096 4 4 4 D:\ORACLE\ORADATA\XJ\EXAMPLE01.DBF 4096 5 5 5 D:\ORACLE\ORADATA\XJ\INDX01.DBF 4096 6 6 6 D:\ORACLE\...
安装ITL EEPROM Downloader 1.0.4软件,安装完成以后查看电脑开始目录看看是否有这个软件,没有的话到安装目录 C:\Program Files (x86)\ITL EEPROM Downloader去打开这个EEPROM Downloader软件2....
itlApp:ITL移动应用程序的API代码源
不错的参考资料哦!
现网上的ITL9341_51单片机的驱动程序很少,特上传分享。
字符串计算器。 创建一个计算器,使您可以使用具有以下特征的int add(字符串数字)方法输入简单的字符串: 该方法可以有0、1或n个数字,并且将返回它们的总和(对于空字符串,它将返回0),例如: 输入: “” ->...
ANSI/NIST-ITL 1-2000 是美国国家信息系统标准定义的指纹、面部、疤痕和纹身 (SMT) 信息交换的数据格式。 NIST 文件的优点是能够在一个文件中包含有关该人的多个图像和其他类型的数据,这简化了参与方之间的生物...
英国ITL纸币器,由于其自身的DLL功能太弱,所以做了二次封装,可供C#使用。
1.8寸ST7735 ITL9163B TFT 8位并口驱动keil项目; STM32F103R8 MCU //======液晶屏数据线接线==========// //本模块默认数据总线类型为8位并行模式 //8位模式接线:8位模式模块接低8位总线,即: //液晶屏LCD_D0对应...