数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

Oracle回滚段学习


发布日期:2023年03月08日
 
Oracle回滚段学习

本文详细介绍了Oracle回滚段的UpdateSelectAlter操作

Update一条记录

updatetesttsetta=wheretb=

在v$transactionv$session视图中可查询到相关事物信息两个视图通过v$sessiontaddr=v$transactionaddr(Address of the transaction state object)相关联

查询出该事物号回滚段(xidusn)号事务槽(xidslot)中

selecttXIDUSNtXIDSLOTtXIDSQNtUBAFILtUBABLKtUBARECfromv$transactiont

XIDUSNXIDSLOTXIDSQNUBAFILUBABLKUBAREC

查询v$rollname视图获得回滚段名称usn列对应回滚段号

select*fromv$rollnamerwhererusn=

转储回滚段头信息

Altersystemdumpundoheader_SYSSMU$

indexstatecflagswrap#uelscndbaparentxidnubstmt_num

xbxxaxxadxexxx

转储前镜像信息

通过dba(data block address)字段得到该事务的前镜像数据块地址

xe 转化为二进制

该地址有位文件号和位数据块组成

得到该dba的文件号数据块号与回滚段中UBAFIL(Undo block address (UBA) filenum)UBABLK(UBA block number)相同

转储文件号数据块号中信息

altersystemdumpdatafileblock;

irb: xf 指回滚段中记录的最近的未提交变更的开始之处及最后一次更改之处

rci该参数代表的是同一事务中的关联修改回滚时根据这个数值找到下次回滚之处

col : [ ] c e记录的就是前置信息

由于test表中的A字段是索引所以回滚段中记录的test的回滚信息和索引的回滚信息

索引

*

*Rec#xfslt:xbobjn:(xf)objd:tblspc:(x)

*Layer:(Index)opc:rcixe

Undotype:RegularundoLastbuffersplit:No

TempObject:No

TablespaceUndo:No

rdba:x

*

indexundoforleafkeyoperations

KTBRedo

op:xver:x

op:Cuba:xeeec

Dumpkdilk:itl=kdxlkflg=xsdc=indexid=xcbblock=xce

purgeleafrow

key:():ceceb

表数据

*

*Rec#xdslt:xbobjn:(xf)objd:tblspc:(x)

*Layer:(Row)opc:rcixc

Undotype:RegularundoLastbuffersplit:No

TempObject:No

TablespaceUndo:No

rdba:x

*

KDOundorecord:

KTBRedo

op:xver:x

op:Cuba:xeeea

KDOOpcode:URProwdependenciesDisabled

xtype:XAbdba:xbhdba:xb

itli:ispac:maxfr:

tabn:slot:(x)flag:xclock:ckix:

ncol:nnew:size:

col:[]ce

               

上一篇:Oracle 9i 在AIX上的安装

下一篇:七种数据库中SelectTop的用法