ITPub博客

首页 > Linux操作系统 > Linux操作系统 > oracle数据块中数据存储(摘录)

oracle数据块中数据存储(摘录)

原创 Linux操作系统 作者:aaqwsh 时间:2011-03-03 21:50:49 0 删除 编辑
 
90CA3C0 00000000 00000000 02012C00 0A04C102 [.........,......]
90CA3D0 61616161 61616161 002C6161 03C10202 [aaaaaaaaaa,.....]
90CA3E0 6161610A 61616161 2C616161 C1020200 [.aaaaaaaaaa,....]
90CA3F0 61610A02 61616161 61616161 70940602 [..aaaaaaaaaa...p]
Block header dump: 0x01800022
 Object id on Block? Y
 seg/obj: 0xcf2c csc: 0x00.217093 itc: 2 flg: O typ: 1 - DATA
     fsl: 0 fnx: 0x0 ver: 0x01
 
 Itl           Xid                  Uba         Flag Lck        Scn/Fsc
0x01   0x0002.00b.00000200 0x00800345.0179.19 --U-    1 fsc 0x0000.00217094
0x02   0x0003.02a.0000020d 0x008003db.0161.26 C---    0 scn 0x0000.00217045
 
data_block_dump,data header at 0x90c845c
===============
tsiz: 0x1fa0   --Total data area size: 8k的block: 8192-20(block head)-24(Transaction Header)-24*2(一个事务条)-4(block tail)=8096(0x1fa0)
--事物列表可能大于2

hsiz: 0x18     --data head size   
pbl: 0x090c845c --Pointer to buffer holding the block

bdba: 0x01800022
     76543210
flag=--------
ntab=1                      --表示存放一张表的数据,当存放cluster时,可能出现ntab〉1
nrow=3                      --表示现在该block 内有三行数据
frre=-1
fsbo=0x18                  --表示可以放数据的空间的起始位置(发现该值和hsiz保持一至)
fseo=0x1f6d                --表示可以存放数据的end位置: 8062
avsp=0x1f55
tosp=0x1f55
0xe:pti[0] nrow=3 ffs=0
0x12:pri[0] ffs=0x1f8f   --0x1f8f+tl:17=8079+17=8096
0x14:pri[1] ffs=0x1f7e  --0x1f7e+t1:17=8062+17=8079
0x16:pri[2] ffs=0x1f6d   --0x1f6d+t1:17=8045+17=8062
block_row_dump:
tab 0, row 0, @0x1f8f
tl: 17 fb: --H-FL-- lb: 0x0 cc: 2
col 0: [ 2] c1 02
col 1: [10] 61 61 61 61 61 61 61 61 61 61
tab 0, row 1, @0x1f7e
tl: 17 fb: --H-FL-- lb: 0x0 cc: 2
col 0: [ 2] c1 03
col 1: [10] 61 61 61 61 61 61 61 61 61 61
tab 0, row 2, @0x1f6d
tl: 17 fb: --H-FL-- lb: 0x1 cc: 2
col 0: [ 2] c1 04
col 1: [10] 61 61 61 61 61 61 61 61 61 61
end_of_block_dump
End dump data blocks tsn: 7 file#: 6 minblk 33 maxblk 34
 
分析上面的灰色部分,翻译如下:
 
90CA3C0 00000000 00000000 02012C00 0A04C102 [.........,......]
翻译:                         002C0102 02C1040A  
          . . . . . . . . . , . . . . . .                    
90CA3D0 61616161 61616161 002C6161 03C10202 [aaaaaaaaaa,.....]
          61616161 61616161 61612C00 0202C103
          a a a a a a a a a a, . . . . .
90CA3E0 6161610A 61616161 2C616161 C1020200 [.aaaaaaaaaa,....]
          0A616161 61616161 6161612C 000202C1
          . a a a a a a a a a a,   . . . .
90CA3F0 61610A02 61616161 61616161 70940602 [..aaaaaaaaaa...p]
          020A6161 61616161 61616161 02069470 –最后四位为block tail
          . . a a a a a a a a a a   . . . P
0x12:pri[0] ffs=0x1f8f 对应得物理地址为90CA3EB-90CA3FB共17个字节
0x14:pri[1] ffs=0x1f7e  对应得物理地址为90CA3DA-90CA3EA共17个字节
0x16:pri[2] ffs=0x1f6d  对应得物理地址为90CA3C9-90CA3D9共17个字节

90CA3EB  = 90C8400+ (20+24+48)/16+ 1f8f
 
0x090c845c --Pointer to buffer holding the block
=90C8400+ (20+24+48)/16

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/758322/viewspace-688386/,如需转载,请注明出处,否则将追究法律责任。

下一篇: bbed修改记录的值
请登录后发表评论 登录
全部评论

注册时间:2010-11-24

  • 博文量
    132
  • 访问量
    262295