加入收藏 | 设为首页 | 会员中心 | 我要投稿 厦门网 (https://www.xiamenwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长百科 > 正文

Oracle UNDO块

发布时间:2021-03-07 08:03:49 所属栏目:站长百科 来源:网络整理
导读:?1)首先更新几条数据,但是不进行commit如下: [email?protected] prod select * from scott.emp;EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO -- -------- ---------- --------- ---------- ------------------- ---------- ---------- ---------- 7369

7)通过dba_extents视图查出一共有两个区,共16个块?

[email?protected] prod>select extent_id,file_id,block_id,blocks,bytes from dba_extents where segment_name=‘_SYSSMU11_1796584641$‘;

 EXTENT_ID    FILE_ID   BLOCK_ID     BLOCKS      BYTES
---------- ---------- ---------- ---------- ----------
         0          6          8          8      65536
         1          6         16          8      65536

8)通过dba_segments视图查出UNDO段头块,即6号文件的8号块是UNDO段头块(所以#blocks:15)

[email?protected] prod>select header_file,header_block from dba_segments where segment_name=‘_SYSSMU11_1796584641$‘; 

HEADER_FILE HEADER_BLOCK
----------- ------------
          6            8

?9)继续向下

  Extent Map
  -----------------------------------------------------------------
   0x01800009  length: 7     
   0x01800010  length: 8     

?区位图:第一个区是undo块的地址为0x0180009开始的前7个块+头块;第二个区是0x0180010开始的8-16块。

10)继续向下

 Retention Table 
  -----------------------------------------------------------
 Extent Number:0  Commit Time: 1552092157
 Extent Number:1  Commit Time: 1552092157?

区的提交时间戳,是从1970年1月1号零时开始计数(以秒为单位记录)

11)继续向下

  TRN CTL:: seq: 0x0003 chd: 0x0020 ctl: 0x0000 inc: 0x00000000 nfb: 0x0001
            mgc: 0xb000 xts: 0x0068 flg: 0x0001 opt: 2147483646 (0x7ffffffe)
            uba: 0x0180000e.0003.0c scn: 0x0000.00104372?

事务控制:

?seq: 0x0003? 表示此事务修改前的值所在的UNDOBLOCK块被覆盖了3次,与第三行的uba:0x0180000f.0003.08中的0003对应。

?chd:0x0020? 表示发生一个新的事务,此时会在下面的TRNTBL::(事务表)的index=0x00020槽中放入新事务信息,即事务表的链头或叫入口。

?ctl: 0x0000? 表示事务表的链尾(实际上大家可以去TRN TBL::看index=0x0000,它对应的SCN=0x0000.00104485是本事务表中最大的SCN,即此事务槽最后才会被覆盖)

?nfb: 0x0001??表示UNDO块在空闲池的空闲块数,0x0000表示池中没有空闲UNDO块了,即FREE BLOCKPOOL::没空闲的块了。

?flg: 0x0001??表示该块的用途,1=KTUUNDO HEADER(2=KTU UNDO BLOCK等等)

?uba:?0x0180000e.0003.0c 表示新事务的第一条UNDO记录(由三部分组成undo块的地址、UNDO块被重用的次数、在UNDO块的第几条记录)。

  • UNDO块的地址:0x0180000e即6号文件的14号块(把0x0180000e 转为2进制,前10为文件号,后22位为块号,转换为10进制可得数据文件号为6,数据块为14)。
  • UNDO块被重用的次数: 0003 即UNDO块被覆盖了3次? ?? ?
  • 在UNDO块的第几条记录 18 即在UNDO块的第12条
  • scn: 0x0000.00104372? 表示11号UNDO段头块中最小的提交的SCN。实际上这个SCN就是事务表中最小的SCN所对应的事务槽上的SCN?

12)继续向下

  FREE BLOCK POOL::
    uba: 0x0180000e.0003.0e ext: 0x0  spc: 0x183a  
    uba: 0x00000000.0003.19 ext: 0x0  spc: 0x10c0  
    uba: 0x00000000.0001.0e ext: 0x0  spc: 0x18a2  
    uba: 0x00000000.0000.00 ext: 0x0  spc: 0x0     
    uba: 0x00000000.0000.00 ext: 0x0  spc: 0x0?

UNDO块的空闲池,当事务做了提交会把此事务所在的UNDO块加入空闲池中。

uba: 由三部分组成undo块的地址、UNDO块被重用的次数、在UNDO块的第几条记录,当undo块的地址为0说明UNDO块不是空闲的,即0x00000000?
ext: UNDO块是在哪个区(extent)
spc: UNDO块中多少空闲空间,单位字节??从上面的UNDO空闲池中看,没有空闲的UNDO块。

13)事物表

  TRN TBL::
 
  index  state cflags  wrap#    uel         scn            dba            parent-xid    nub     stmt_num    cmt
  ------------------------------------------------------------------------------------------------
   0x00    9    0x00  0x000b  0xffff  0x0000.00104485  0x0180000e  0x0000.000.00000000  0x00000001   0x00000000  1552092317
   0x01    9    0x00  0x000a  0x001a  0x0000.001043f3  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092190
   0x02    9    0x00  0x000a  0x0021  0x0000.00104374  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092173
   0x03    9    0x00  0x000a  0x000c  0x0000.0010440a  0x00000000  0x0000.000.00000000  0x00000000   0x00000000  1552092191
   0x04    9    0x00  0x000a  0x0001  0x0000.00104376  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092173
   0x05    9    0x00  0x000a  0x000a  0x0000.00104403  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x06    9    0x00  0x000a  0x0007  0x0000.001043fe  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x07    9    0x00  0x000a  0x0008  0x0000.00104400  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x08    9    0x00  0x000a  0x0005  0x0000.00104402  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x09    9    0x00  0x000a  0x0003  0x0000.00104407  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x0a    9    0x00  0x000a  0x0009  0x0000.00104404  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x0b    9    0x00  0x000a  0x000e  0x0000.0010440f  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x0c    9    0x00  0x000a  0x000b  0x0000.0010440c  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x0d    9    0x00  0x000a  0x0010  0x0000.00104414  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x0e    9    0x00  0x000a  0x000d  0x0000.00104411  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x0f    9    0x00  0x000a  0x0012  0x0000.0010441e  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x10    9    0x00  0x000a  0x000f  0x0000.0010441a  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x11    9    0x00  0x000a  0x0013  0x0000.00104420  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x12    9    0x00  0x0009  0x0011  0x0000.0010441f  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092191
   0x13    9    0x00  0x000a  0x0014  0x0000.00104422  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092192
   0x14    9    0x00  0x000a  0x0015  0x0000.00104425  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092192
   0x15    9    0x00  0x000a  0x0016  0x0000.00104435  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092195
   0x16    9    0x00  0x000a  0x0017  0x0000.00104437  0x0180000d  0x0000.000.00000000  0x00000001   0x00000000  1552092195
   0x17    9    0x00  0x000a  0x0018  0x0000.00104439  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092196
   0x18    9    0x00  0x000a  0x001b  0x0000.0010443b  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092196
   0x19   10    0x80  0x000a  0x0000  0x0000.0010444f  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  0
   0x1a    9    0x00  0x0009  0x0006  0x0000.001043f6  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092190
   0x1b    9    0x00  0x000a  0x001c  0x0000.00104454  0x0180000e  0x0000.000.00000000  0x00000001   0x00000000  1552092257
   0x1c    9    0x00  0x000a  0x001d  0x0000.0010445a  0x0180000e  0x0000.000.00000000  0x00000001   0x00000000  1552092257
   0x1d    9    0x00  0x000a  0x001e  0x0000.00104460  0x0180000e  0x0000.000.00000000  0x00000001   0x00000000  1552092257
   0x1e    9    0x00  0x000a  0x001f  0x0000.00104479  0x0180000e  0x0000.000.00000000  0x00000001   0x00000000  1552092317
   0x1f    9    0x00  0x000a  0x0000  0x0000.0010447f  0x0180000e  0x0000.000.00000000  0x00000001   0x00000000  1552092317
   0x20    9    0x00  0x0009  0x0002  0x0000.00104373  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092173
   0x21    9    0x00  0x0009  0x0004  0x0000.00104375  0x0180000c  0x0000.000.00000000  0x00000001   0x00000000  1552092173?

TRN TBL::(事务表)是UNDO段头块最重要的。我们一一来解释每个字段的意思:

(编辑:厦门网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读