从Undo, Redo, DataFile看Oracle中的事务过程
2009-06-12 11:51:00 来源:WEB开发网SQL> select usn, name from v$rollname where usn=10;
USN NAME
---------- ------------------------------
10 _SYSSMU10$
这里的usn即为transaction的xidusn
5:Dump回滚段的头信息及块信息
SQL> alter system dump undo header '_SYSSMU10$';
System altered.
回滚段的header中会纪录事务槽信息,
TRN TBL::
index state cflags wrap# uel scn dba parent-xid nub stmt_num
------------------------------------------------------------------------------------------------
0x1a 9 0x00 0x5147 0x0019 0x0000.027c09b1 0x0080055f 0x0000.000.00000000 0x00000001 0x00000000
0x1b 10 0x80 0x5147 0x0002 0x0000.027c0b03 0x0080055f 0x0000.000.00000000 0x00000001 0x00000000
0x1c 9 0x00 0x5146 0x001d 0x0000.02778562 0x0080055d 0x0000.000.00000000 0x00000001 0x00000000
注意:state:10为active, 9为inactive
dba:为回滚块的地址,根据这个地址,我们可以计算出file#及block#
0x0080055f
0000 0000 10 00 0000 0000 0101 0101 1111
---------------- ------------------------------------
file#2 block#1375
当然这个值可以不用计算,transaction的ubafil,ubablk分别为file#, block#。
更多精彩
赞助商链接