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. 数据库层环节 能够对各个环节的问 ...
随机推荐
- Oracle 11g gateways(透明网关)配置
配置要点主要有三点: 1.%GATEWAYS_HOME%(透明网关安装目录)\dg4msql\admin\initdg4msql.ora 内容: HS_FDS_CONNECT_INFO=localho ...
- 记一次ios使用OAuth 2.0写的接口获取token的小错
1.用ios原生网络请求的话,请求参数不能这样传 而要这样传 2.用afnetworking的话,要注意各个参数有没有错误,参数可以直接这样传
- c#对象初始化
class test:IEquatable<test> { public int aa { get; set; } public string bb { get; set; } publi ...
- javee学习-通过ServletContext对象实现数据共享
1,设置值. ServletContext context = this.getServletConfig().getServletContext();//获得ServletContext对象 // ...
- 深度优化LNMP之Nginx [2]
深度优化LNMP之Nginx [2] 配置Nginx gzip 压缩实现性能优化 1.Nginx gzip压缩功能介绍 Nginx gzuo压缩模块提供了压缩文件内容的功能,用户请求 ...
- docker私有仓库
1.docker pull registry 2.sudo docker run -d -p 5000:5000 registry 默认情况下,会将仓库存放于容器内的/tmp/registry目录下, ...
- Nginx 第三方模块-漫谈缘起
http://www.cnblogs.com/yjf512/archive/2012/03/30/2424726.html http://chenxiaoyu.org/2011/10/30/nginx ...
- 更加直观地了解hasLayout和BFC
网络上有很多关于hasLayout和BFC相关的文章,但是大部分都显得有些晦涩难懂.所以想用一些比较直观的例子来说明hasLayout和BFC给平时的布局带来的影响. 基础知识 在讲hasLayout ...
- 此文件时入口文件index.php
此文件时入口文件index.php <?php //定义一下ThinkPHP框架存放的路径 define('THINK_PATH','./ThinkPHP/'); //定义当前的项目的名称,此处 ...
- OS概论1
1.设计现代OS的主要目标是什么? 在计算机上配置操作系统,其主要目标是:方便性,有效性,可扩充性,开放性. 一个没有OS的操作系统,就必须用机器语言书写程序,如果在计算机上配置了OS,系统便可以使用 ...