Oracle回滚段学习
http://tech.ddvip.com 2008年08月27日 社区交流
内容摘要:本文详细介绍了Oracle回滚段的Update,Select,Alter操作。
1、Update一条记录
updatetest2tsett.a=17111wheret.b=17286
2、在v$transaction,v$session视图中可查询到相关事物信息,两个视图通过v$session.taddr=v$transaction.addr(Address of the transaction state object)相关联。
查询出该事物6号回滚段(xidusn)27号事务槽(xidslot)中
selectt.XIDUSN,t.XIDSLOT,t.XIDSQN,t.UBAFIL,t.UBABLK,t.UBARECfromv$transactiont
XIDUSNXIDSLOTXIDSQNUBAFILUBABLKUBAREC
16272616248989
3、查询v$rollname视图获得回滚段名称,usn列对应回滚段号
select*fromv$rollnamerwherer.usn=6
4、转储回滚段头信息
Altersystemdumpundoheader’_SYSSMU6$’
indexstatecflagswrap#uelscndbaparent-xidnubstmt_num
0x1b100x800x0a380x00020x0000.002ad4860x008001e90x0000.000.000000000x000000010x00000000
5、转储前镜像信息100000000000000111101001
通过dba(data block address)字段得到该事务的前镜像数据块地址。
0x008001e9 转化为二进制0000 0000 1000 0000 0000 0001 1110 1001
该地址有10位文件号和22位数据块组成
得到该dba的文件号2数据块号489与回滚段中UBAFIL(Undo block address (UBA) filenum),UBABLK(UBA block number)相同
6、转储文件号2数据块号489中信息
altersystemdumpdatafile2block489;
irb: 0x5f 指回滚段中记录的最近的未提交变更的开始之处,及最后一次更改之处。
rci:该参数代表的是同一事务中的关联修改。回滚时根据这个数值找到下次回滚之处。
col 0: [ 4] c3 03 18 2e记录的就是前置信息。
由于test2表中的A字段是索引,所以回滚段中记录的test2的回滚信息和索引的回滚信息。
索引:
*-----------------------------
*Rec#0x5fslt:0x1bobjn:30454(0x000076f6)objd:30454tblspc:5(0x00000005)
*Layer:10(Index)opc:22rci0x5e
Undotype:RegularundoLastbuffersplit:No
TempObject:No
TablespaceUndo:No
rdba:0x00000000
*-----------------------------
indexundoforleafkeyoperations
KTBRedo
op:0x02ver:0x01
op:Cuba:0x008001e9.00ee.5c
Dumpkdilk:itl=2,kdxlkflg=0x1sdc=5216369indexid=0x1404c0bblock=0x01404c3e
purgeleafrow
key:(17):04c302480e04c303182e0601404b340004
表数据:
*-----------------------------
*Rec#0x5dslt:0x1bobjn:30449(0x000076f1)objd:30449tblspc:5(0x00000005)
*Layer:11(Row)opc:1rci0x5c
Undotype:RegularundoLastbuffersplit:No
TempObject:No
TablespaceUndo:No
rdba:0x00000000
*-----------------------------
KDOundorecord:
KTBRedo
op:0x02ver:0x01
op:Cuba:0x008001e9.00ee.5a
KDOOpcode:URProwdependenciesDisabled
xtype:XAbdba:0x01404b34hdba:0x01404b33
itli:2ispac:0maxfr:4858
tabn:0slot:4(0x4)flag:0x2clock:0ckix:5
ncol:3nnew:1size:0
col0:[4]c303182e
作者:junnior 责编:豆豆技术应用
- Oracle 10g 教程
- Oracle 故障处理
- Oracle 存储过程
- Oracle 备份恢复
- Oracle 性能调优
- Oracle 9i 教程
- Oracle 11g 教程
- Oracle 启动
- Oracle 命令
- Oracle 数据库管理
- Oracle 时间
- Oracle 密码
- Oracle 用户
- Oracle 常见错误
- Oracle 建数据表
- Oracle 索引
- Oracle 数据库连接
- Oracle 锁
- Oracle RAC 专题
- Oracle exp/imp 命令
- Oracle 表空间
- Oracle 查询
- Oracle 函数
- Oracle PL/SQL 专题
- 更多Oracle 专题>>>