知识大全 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>

    

  这说明一个问题

    

  当更新的时候新增加了一个块 这个块里面的数据 就是 回滚段中保存的数据

    

cha138/Article/program/Oracle/201311/18474

相关参考

知识大全 Oracle回滚段管理

Oracle回滚段管理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  回滚段管理一直是ORACL

知识大全 Oracle回滚段学习

Oracle回滚段学习  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本文详细介绍了Oracle

知识大全 回滚段问题

  回滚段管理一直是ORACLE数据库管理的一个难题本文通过实例介绍ORACLE回滚段的概念用法和规划及问题的解决      回滚段概述      回滚段用于存放数据修改之前的值(包括数据修改之前的位

知识大全 Oracle回滚段空间回收步骤

Oracle回滚段空间回收步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  是谁偷偷的用了那么

知识大全 Oracle回滚段的概念,用法和规划及问题的解决

Oracle回滚段的概念,用法和规划及问题的解决  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Oracle8i中回滚段使用和ORA-1555

Oracle8i中回滚段使用和ORA-1555  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  回

知识大全 查看哪些session正在使用哪些回滚段

  系统环境操作系统Windows  数据库 OracleiR()forNT企业版  安装路径C:\\ORACLE    测试方法打开多个SQL*Plus窗口一些做一些需要回滚的操作如insertde

知识大全 充分利用自动撤销管理的优点

  在Oraclei中Oracle对回滚段进行了重新命名现在将其作为撤销日志在传统的操作上回滚段保存交换的撤销信息直到系统发送一个响应或者回滚语句    人工撤销管理在Oraclei仍然被使用但绝大多

知识大全 EJB之JPA(事务回滚)

EJB之JPA(事务回滚)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  &

知识大全 c#中事务、批量提交、回滚的写法

publicvoidUpdateContactTableByDataSet(DataSetdsstringstrTblName)trySqlDataAdaptermyAdapter=newSqlDat