Welcome 微信登录

首页 / 数据库 / MySQL / 实验: Oracle事务(ITL)

1 建表,插入数据SQL> create table test(id number, name varchar2(10));Table createdSQL> insert into test values(1, "a");1 row insertedSQL> 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        7682 Dump块SQL> alter system dump datafile 4 block 768;System altered 从udump文件中Trace文件可以得信息:=======================================================================================……Itl           Xid                  Uba         Flag  Lck        Scn/Fsc0x01   0x0008.012.0000020d  0x008000af.01cf.1d  ----    1  fsc 0x0000.000000000x02   0x000a.007.000001cd  0x0080035c.0148.0d  --U-    1  fsc 0x0007.001a603f……======================================================================================= ITL中的xid:0x0005.020.0000020e是由undo信息组成的:xidusn.xidslot.xidsqnITL中的uba:0x0080024d.0129.1f是由uba(undo block address).UBASQN.UBARECundo block address是0080024d,是一个16进制数,可以通过如下函数转换为UBAFIL和UBABLK3 分解xidSQL> select to_number("0008","xxxxx") xidusn from dual;    XIDUSN----------         8SQL> select to_number("012","xxxxx") xidslot from dual;   XIDSLOT----------        18SQL> select to_number("0000020d","xxxxxxxxx") xidsqn from dual;    XIDSQN----------       5254 分解ubaSQL> select dbms_utility.data_block_address_file(to_number("008000af","xxxxxxxx")) UBAFIL from dual;    UBAFIL----------         2SQL> select dbms_utility.data_block_address_block(to_number("008000af","xxxxxxxx")) UBABLK from dual;    UBABLK----------       175SQL> select to_number("01cf","xxxxxxxxx") UBASQN from dual;    UBASQN----------       463SQL> select to_number("1d","xxxxxxxxx") UBAREC from dual;    UBAREC----------        295 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 insertedSQL> 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不同.ORA-19800: Unable to initialize Oracle Managed Destination查看Oracle表空间大小及所剩空间大小相关资讯      Oracle数据库  Oracle入门教程  oracle数据库教程 
  • Oracle数据库全球化  (03月01日)
  • Oracle数据库日期过滤方法性能比较  (02/02/2015 13:20:26)
  • Oracle数据库安装中端口被占用问题  (10/29/2014 07:42:24)
  • 在CentOS 6.6上搭建C++运行环境并  (10/10/2015 19:44:40)
  • Oracle数据库无法使用localhost和  (11/14/2014 16:39:10)
  • 使用SQLT来构建Oracle测试用例  (08/28/2014 06:17:41)
本文评论 查看全部评论 (0)
表情: 姓名: 字数