知识大全 oracle的事务与锁与回滚段block的一点研究
Posted 知
篇首语:对所学知识内容的兴趣可能成为学习动机。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 oracle的事务与锁与回滚段block的一点研究相关的知识,希望对你有一定的参考价值。
SQL> create table a as select rownum a from t where rownum < ;
表已创建
SQL> alter table a initrans ;
表已更改
SQL> update a set a = where a in ( );
已更新 行
SQL> alter system dump datafile block ;
系统已更改
Start dump data blocks tsn: file#: minblk maxblk
buffer tsn: rdba: x c ( / )
scn: x e seq: x flg: x tail: x e
frmt: x cval: x type: x =trans data
Block header dump: x c
Object id on Block? Y
seg/obj: x be csc: x e itc: flg: O typ: DATA
fsl: fnx: x ver: x
Itl Xid Uba Flag Lck Scn/Fsc
x xid: x be uba: x c cd c fsc x
data_block_dump
我们看到该块上第一个 trans x 的一些标记信息
scn: x e seq: x scn号
x xid: x be uba: x c cd c (表示该事务更新 条记录) fsc x
下面是数据中的一些内容
block_row_dump:
tab row @ x fb
tl: fb: H FL lb: x ( x 表示 该编号事务所更新数据) cc:
col : [ ] c
tab row @ x fa
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x fa
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f e
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f c
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f a
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f
tl: fb: H FL lb: x cc:
然后我们继续在另外一个sqlplus中进行
SQL> update a set a = where a in ( );
已更新 行
SQL> alter system dump datafile block ;
系统已更改
SQL>
我们可以看到已经多了一个事务信息
Start dump data blocks tsn: file#: minblk maxblk
buffer tsn: rdba: x c ( / )
scn: x e seq: x flg: x tail: x e
frmt: x cval: x type: x =trans data
Block header dump: x c
Object id on Block? Y
seg/obj: x be csc: x e itc: flg: O typ: DATA
fsl: fnx: x ver: x
Itl Xid Uba Flag Lck Scn/Fsc
x xid: x be uba: x c cd c fsc x
x xid: x a c uba: x d f fsc x
data_block_dump
然后数据也发生了变化
block_row_dump:
tab row @ x f a
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x c
tl: fb: H FL lb: x cc:
col : [ ]
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x c b
tl: fb: H FL lb: x cc:
col : [ ]
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x c
tl: fb: H FL lb: x cc:
col : [ ]
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x c
tl: fb: H FL lb: x cc:
col : [ ]
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c
tab row @ x f
tl: fb: H FL lb: x cc:
col : [ ] c b
tab row @ x f
tl: fb: H FL lb: x cc:
数据中的每行中都有标记 事务信息(编号)
这个时候我们查询x$bh
SQL> select dataobj# from obj$ where name = A ;
DATAOBJ#
SQL> select count(*) from x$bh where obj = ;
COUNT(*)
我们看到这个时候 data buffer 中有 个block
然后再在新的sqlplus中更新
SQL> update a set a = where a = ;
已更新 行
SQL>
这个时候我们发现
SQL> select count(*) from x$bh where obj = ;
COUNT(*)
SQL>
这说明一个问题
当更新的时候新增加了一个块 这个块里面的数据 就是 回滚段中保存的数据
相关参考
Oracle回滚段管理 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 回滚段管理一直是ORACL
Oracle回滚段学习 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 本文详细介绍了Oracle
回滚段管理一直是ORACLE数据库管理的一个难题本文通过实例介绍ORACLE回滚段的概念用法和规划及问题的解决 回滚段概述 回滚段用于存放数据修改之前的值(包括数据修改之前的位
Oracle回滚段空间回收步骤 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 是谁偷偷的用了那么
Oracle回滚段的概念,用法和规划及问题的解决 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
Oracle8i中回滚段使用和ORA-1555 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 回
系统环境操作系统Windows 数据库 OracleiR()forNT企业版 安装路径C:\\ORACLE 测试方法打开多个SQL*Plus窗口一些做一些需要回滚的操作如insertde
在Oraclei中Oracle对回滚段进行了重新命名现在将其作为撤销日志在传统的操作上回滚段保存交换的撤销信息直到系统发送一个响应或者回滚语句 人工撤销管理在Oraclei仍然被使用但绝大多
EJB之JPA(事务回滚) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &
publicvoidUpdateContactTableByDataSet(DataSetdsstringstrTblName)trySqlDataAdaptermyAdapter=newSqlDat