Oracle回滚段学习
2008-08-27 12:43:55 来源:WEB开发网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
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››学习破解方法来降低无线网络被盗
- ››Oracle创建表空间、创建用户以及授权、查看权限
更多精彩
赞助商链接