undo信息

oracle中undo的信息主要完成下面的功能:

  • 1,构建块一致性读
  • 2,回滚事务

UBA:undo block address

1,块中的事务槽ITL中的UBA表示这个ITL所在的block历经的最后一次改变所对应的undo record所在的UBA,主要用于一致读。

2,undo segment header中的UBA表示所对应的transaction的undo chain的最后一个UBA,用于transaction的回滚。

可以通过v$KTUXE视图来查看undo segment header中的transaction table情况。

下面通过实验来看一下:

1,查看undo segment header。

第一步:更新记录

SYS/SYS@ORCL>update test set name='jkkkkkkkkkkkkkkkkkkkkkk' where id=2;
1 row updated.

第二步:查看本事务使用的undo segment以及文件和块的情况

SYS/SYS@ORCL>select XIDUSN as segment_id, ubafil as file_id, ubablk, start_ubablk, used_ublk from v$transaction;

SEGMENT_ID    FILE_ID     UBABLK START_UBABLK  USED_UBLK
---------- ---------- ---------- ------------ ----------
10 2 715 715 1 1 row selected.
SYS/SYS@ORCL>select segment_name, segment_id, file_id,block_id from dba_rollback_segs where segment_id=10; SEGMENT_NAME SEGMENT_ID FILE_ID BLOCK_ID
------------------------------------------------------------ ---------- ---------- ----------
_SYSSMU10$ 10 2 153
1 row selected.

所以,本事务使用的undo segment_id为10,file_id为2,undo segment header的block_id为153。 下面dump这个undo segment header来看下:

  Extent Header:: spare1: 0      spare2: 0      #extents: 3      #blocks: 143
last map 0x00000000 #maps: 0 offset: 4080
Highwater:: 0x008002cd ext#: 2 blk#: 68 ext size: 128
#blocks in seg. hdr's freelists: 0
#blocks below: 0
mapblk 0x00000000 offset: 2
Unlocked
Map Header:: next 0x00000000 #extents: 3 obj#: 0 flag: 0x40000000
Extent Map
-----------------------------------------------------------------
0x0080009a length: 7
0x008000d9 length: 8
0x00800289 length: 128 Retention Table
-----------------------------------------------------------
Extent Number:0 Commit Time: 1326479408
Extent Number:1 Commit Time: 1326479408
Extent Number:2 Commit Time: 1326479408 TRN CTL:: seq: 0x00f4 chd: 0x0021 ctl: 0x002b inc: 0x00000000 nfb: 0x0002
mgc: 0x8201 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
uba: 0x008002cb.00f4.0c scn: 0x0000.000ddd2f
Version: 0x01
FREE BLOCK POOL::
uba: 0x00000000.00f4.0b ext: 0x2 spc: 0x1a64
uba: 0x008002cc.00f4.11 ext: 0x2 spc: 0xf9c
uba: 0x008002cd.00f4.01 ext: 0x2 spc: 0x1f88
uba: 0x00000000.00eb.01 ext: 0x2 spc: 0x1f88
uba: 0x00000000.00eb.01 ext: 0x2 spc: 0x1f88
TRN TBL:: index state cflags wrap# uel scn dba parent-xid nub stmt_num cmt
------------------------------------------------------------------------------------------------
0x00 9 0x00 0x00f9 0x0011 0x0000.000e3357 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326654543
0x01 9 0x00 0x00f9 0x0000 0x0000.000e3297 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326654005
0x02 9 0x00 0x00f9 0x0006 0x0000.000e2fe0 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326652743
0x03 9 0x00 0x00f9 0x0008 0x0000.000e3153 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x04 9 0x00 0x00f9 0x002d 0x0000.000e30f3 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x05 9 0x00 0x00f9 0x000c 0x0000.000e312a 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x06 9 0x00 0x00f9 0x0025 0x0000.000e30be 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x07 9 0x00 0x00f9 0x0015 0x0000.000e3188 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x08 9 0x00 0x00f9 0x000d 0x0000.000e315e 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x09 9 0x00 0x00f9 0x002e 0x0000.000e3115 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x0a 9 0x00 0x00f9 0x000e 0x0000.000e3173 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x0b 9 0x00 0x00f9 0x0009 0x0000.000e3108 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x0c 9 0x00 0x00f9 0x0028 0x0000.000e3134 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x0d 9 0x00 0x00f9 0x000a 0x0000.000e3168 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x0e 9 0x00 0x00f9 0x0007 0x0000.000e317e 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326653343
0x0f 9 0x00 0x00f9 0x0010 0x0000.000e3376 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326654543
0x10 9 0x00 0x00f9 0x0014 0x0000.000e3381 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326654543
0x11 9 0x00 0x00f9 0x000f 0x0000.000e3364 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326654543
0x12 9 0x00 0x00f9 0x001c 0x0000.000e37f2 0x008002cb 0x0000.000.00000000 0x00000001 0x00000000 1326657606
0x13 9 0x00 0x00f8 0x001a 0x0000.000ddd4a 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326492007
0x14 9 0x00 0x00f9 0x0016 0x0000.000e34ee 0x008002bf 0x0000.000.00000000 0x00000001 0x00000000 1326655603
0x15 9 0x00 0x00f9 0x0001 0x0000.000e3286 0x008002be 0x0000.000.00000000 0x00000001 0x00000000 1326654003
0x16 9 0x00 0x00f9 0x001b 0x0000.000e352d 0x008002bf 0x0000.000.00000000 0x00000001 0x00000000 1326655743
0x17 9 0x00 0x00f9 0x0018 0x0000.000e3568 0x008002cb 0x0000.000.00000000 0x00000001 0x00000000 1326655803
0x18 9 0x00 0x00f9 0x0012 0x0000.000e375b 0x008002cb 0x0000.000.00000000 0x00000001 0x00000000 1326657242
0x19 9 0x00 0x00f9 0x0026 0x0000.000e3554 0x008002c8 0x0000.000.00000000 0x00000003 0x00000000 1326655802
0x1a 9 0x00 0x00f8 0x001d 0x0000.000ddeb0 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326493035
0x1b 9 0x00 0x00f9 0x0019 0x0000.000e3553 0x008002c3 0x0000.000.00000000 0x00000003 0x00000000 1326655802
0x1c 9 0x00 0x00f9 0x002b 0x0000.000e874a 0x008002cb 0x0000.000.00000000 0x00000001 0x00000000 1326657871
0x1d 9 0x00 0x00f8 0x002a 0x0000.000e2e6d 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326652128
0x1e 9 0x00 0x00f8 0x0027 0x0000.000ddd32 0x008002bd 0x0000.000.00000000 0x00000003 0x00000000 1326492003
0x1f 9 0x00 0x00f8 0x0017 0x0000.000e3556 0x008002cc 0x0000.000.00000000 0x00000007 0x00000000 1326655802
0x20 9 0x00 0x00f8 0x001e 0x0000.000ddd31 0x008002ba 0x0000.000.00000000 0x00000003 0x00000000 1326492003
0x21 9 0x00 0x00f8 0x0020 0x0000.000ddd30 0x008002b8 0x0000.000.00000000 0x00000003 0x00000000 1326492003
0x22 9 0x00 0x00f8 0x0002 0x0000.000e2f0d 0x008002bd 0x0000.000.00000000 0x00000001 0x00000000 1326652202

0x23 10 0x80 0x00f9 0x0002 0x0000.000e8781 0x008002cb 0x0000.000.00000000 0x00000001 0x00000000 0然后dump 数据块看一下itl的情况

   Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01 0x0008.029.0000012a 0x0080036a.00f3.05 C--- 0 scn 0x0000.000d6ead
0x02 0x000a.023.000000f9 0x008002cb.00f4.0c ---- 1 fsc 0x0000.00000000
0x03 0x0005.00f.00000148 0x0080004c.019f.16 C--- 0 scn 0x0000.000d6ea7

下面再dump undo 块的内容看一下:

UNDO BLK:
xid: 0x000a.023.000000f9 seq: 0xf4 cnt: 0xc irb: 0xc icl: 0x0 flg: 0x0000 Rec Offset Rec Offset Rec Offset Rec Offset Rec Offset
---------------------------------------------------------------------------
0x01 0x1f70 0x02 0x1f1c 0x03 0x1e74 0x04 0x1e08 0x05 0x1d84
0x06 0x1d24 0x07 0x1cc4 0x08 0x1bd0 0x09 0x1b4c 0x0a 0x1aec
0x0b 0x1a8c

0x0c 0x19ec在itl中: xid中0x000a.023.000000f9, XID由三部分内容组成:XIDUSN(回滚段号),XIDSLOT(回滚段槽 号),XIDSQN(序列号) 0x000a代表undo segment id,即十进制为10。023代表undo segment header中的回滚槽,即transaction table中的一行。 000000f9代表序列号。XID对应一个UBA(undo block address),表示该事务回滚信息的开始位置, 这个通过v$transaction可以对应上:

SYS/SYS@ORCL>select xidusn,xidslot,xidsqn,ubafil,ubablk,ubasqn,ubarec from
2 v$transaction; XIDUSN XIDSLOT XIDSQN UBAFIL UBABLK UBASQN UBAREC
---------- ---------- ---------- ---------- ---------- ---------- ----------
10 35 249 2 715 244 12 1 row selected.

XIDUSN,XIDSLOT,XIDSQN共同组成了Xid。UBAFIL,UBABLK,UBASQN,UBAREC共同组成了undo segment header中transaction table中的UBA. 在每个data block的ITL中也有一个UBA,实际上这个UBA是指向了该block对应的undo信息的起始位置,这个UBA主要的作用是提供一致性读, 因为一 致性读需要通过undo信息来构造一个CR block,通过这个UBA就可以直接定位到block的回滚信息的起始位置,而不再需要通过undo segment header中的事务表。

最新文章

  1. 数据获取以及处理Beta版本展示
  2. [译]我是怎么构建Node.js程序的
  3. IOS—静态方法(类方法)和实例方法
  4. ASP.NET连接Oracle数据库的步骤详解(转)
  5. LeetCode - 44. Wildcard Matching
  6. rhel5 新建用户提示:the home directory already exists.
  7. 【C#学习笔记】窗口隐藏、最小化、最大化、正常化
  8. ORACLE管理存储结构之物理机构+逻辑结构【weber出品】
  9. jquery获得select选中索引
  10. 什么是Solr搜索
  11. MySQL 日志的类型
  12. netty的简单的应用例子
  13. 《我是一只IT小小鸟读后感》
  14. object references an unsaved transient instance save the transient instance before flushing
  15. [leetcode]91. Decode Ways解码方法
  16. VS2012 安装番茄插件
  17. 第十八章 dubbo-monitor计数监控
  18. MySQL服务器最大连接数的合理设置
  19. 隐型马尔科夫模型(HMM) 简介
  20. MySQL 练习题4

热门文章

  1. onMouseDown onMouseUp onMouseMove(移动鼠标图像大小变化)
  2. 数据库hang住 处理过程
  3. 时间处理总结(二)oracle
  4. SDL实现按钮
  5. Java工具类:获取long型唯一ID
  6. Struts2的运行原理和运行与原理
  7. 05_Excel操作_03_模拟Web环境的Excel导入
  8. linux管理文件系统指令
  9. Hive - 建表和加载数据指令小结 以及使用Load data指令的注意事项
  10. Web Service 的服务端的引用