oracle core04_undo
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中的事务表。
oracle core04_undo的更多相关文章
- Oracle分析函数入门
一.Oracle分析函数入门 分析函数是什么?分析函数是Oracle专门用于解决复杂报表统计需求的功能强大的函数,它可以在数据中进行分组然后计算基于组的某种统计值,并且每一组的每一行都可以返回一个统计 ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...
- Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作
Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part1:准备工作 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 1.实施前准备工作 1.1 服务器安装操 ...
- Oracle 的基本操作符
!= 不等于 select empno,ename,job from scott.emp where job!='manager' ^= 不等于 select empno,ename,job from ...
- 使用Zabbix监控Oracle数据库
Orabbix介绍 监控Oracle数据库我们需要安装第三方提供的Zabbix插件,我们先测试比较有名的Orabbix,http://www.smartmarmot.com/product/orabb ...
- 基于Oracle安装Zabbix
软件版本 Oracle Enterprise Linux 7.1 64bit Oracle Enterprise Edition 12.1.0.2 64bit Zabbix 3.2.1 准备工作 上传 ...
- Oracle Database 12c Data Redaction介绍
什么是Data Redaction Data Redaction是Oracle Database 12c的高级安全选项之中的一个新功能,Oracle中国在介绍这个功能的时候,翻译为“数据编纂”,在EM ...
- 使用Oracle官方巡检工具ORAchk巡检数据库
ORAchk概述 ORAchk是Oracle官方出品的Oracle产品健康检查工具,可以从MOS(My Oracle Support)网站上下载,免费使用.这个工具可以检查Oracle数据库,Gold ...
- 利用Oracle RUEI+EM12c进行应用的“端到端”性能诊断
概述 我们知道,影响一个B/S应用性能的因素,粗略地说,有以下几个大的环节: 1. 客户端环节 2. 网络环节(可能包括WAN和LAN) 3. 应用及中间层环节 4. 数据库层环节 能够对各个环节的问 ...
随机推荐
- sql 几个常用函数
ROUND 用法: --15.000 表示小数点第一位取四舍五入,将原小数点后的位数都设置为0SELECT ROUND(15.258,0) --15.300,第二个参数如果是1,则取原值小数点后第一位 ...
- 一些简单的帮助类(2)-- JavaSctipt Array Linq
在日程工作中经常会遇到这样的问题 一个JS数组 我们要找出其中 一些符合要求的类容 又或者对数组里的类容求和求平均数之类的一般的做法是循环里面的类容做判断添加到一个新的集合里 var array = ...
- JavaScript使用技巧
使用!!操作符转换布尔值 有时候我们需要对一个变量查检其是否存在或者检查值是否有一个有效值,如果存在就返回true值.为了做这样的验证,我们可以使用!!操作符来实现是非常的方便与简单.对于变量可以使用 ...
- EIGamal密码体制
EIGamal密码体制:由EIGamal提出,是一种基于离散对数问题的双钥密码体制,既可用于加密,又可以用于签名. 密钥对生成步骤: 1.取大素数p和g<p(g最好是p的素根) 2.选一整数x& ...
- JS脚本延时
JS脚本延时 function sleep(milliseconds) { var start = new Date().getTime(); for (var i = 0; i < 1e7 ...
- mysql中 出现No query specified
Mysql----error:no query specified mysql下抛出错误: error:no query specified 出现此错误是sql不合法原因: 如:select * fr ...
- sort对象数组排序
function objectSort(property, desc) { //降序排列 if (desc) { return function (a, b) { return (a[property ...
- jquery 多级无限分类
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...
- HTML5 声明兼容IE的写法
<!DOCTYPE html> <!–[if IE]> <meta http-equiv=”X-UA-Compatible” content=”IE=8″ /> & ...
- winform 禁用鼠标滚轮
新建一个类,继承IMessageFilter public class FormFilter : IMessageFilter { public bool PreFilterMessage(ref M ...