Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

11

积分

0

好友

1

主题
1#
发表于 2012-5-6 13:11:01 | 查看: 4886| 回复: 3
data_block_dump,data header at 0xb65225c
===============
tsiz: 0x1fa0
hsiz: 0x18
pbl: 0x0b65225c
bdba: 0x0040f242
     76543210
flag=--------
ntab=1
nrow=3
frre=-1
fsbo=0x18
fseo=0x1f5a
avsp=0x1f50
tosp=0x1f52
0xe:pti[0] nrow=3 offs=0
0x12:pri[0] offs=0x1f89
0x14:pri[1] offs=0x1f78
0x16:pri[2] offs=0x1f5a
block_row_dump:
tab 0, row 0, @0x1f89
tl: 23 fb: --H-FL-- lb: 0x1  cc: 4
col  0: [ 2]  c1 02
col  1: [ 2]  ce d2
col  2: [ 7]  78 70 05 06 01 01 01
col  3: [ 5]  61 20 20 20 20
tab 0, row 1, @0x1f78
tl: 17 fb: --H-FL-- lb: 0x1  cc: 3
col  0: [ 2]  c1 03
col  1: [ 2]  c3 c7
col  2: [ 7]  78 70 05 07 01 01 01
tab 0, row 2, @0x1f5a
tl: 14 fb: --H-FL-- lb: 0x1  cc: 4
col  0: [ 2]  c1 04
col  1: *NULL*
col  2: *NULL*
col  3: [ 5]  63 20 20 20 20
end_of_block_dump
End dump data blocks tsn: 0 file#: 1 minblk 62018 maxblk 62018
------------------------------------------------------------------------------------------
其中每行的tl(number of bytes plus data) 的值由哪些部分组成,请liu大详细列出,非常感谢!!!
2#
发表于 2012-5-6 23:33:01
SQL> create table test( t1 number, t2 char(999), t3 date);

Table created.

SQL> insert into test values(999,'MACLEAN',sysdate);

1 row created.

SQL> commit;

Commit complete.


SQL> alter system checkpoint;                                                                  

System altered.

SQL> select dbms_rowid.rowid_block_number(rowid),dbms_rowid.rowid_relative_fno(rowid) from test;

DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) DBMS_ROWID.ROWID_RELATIVE_FNO(ROWID)
------------------------------------ ------------------------------------
                              255042                                    1

SQL> alter system dump datafile 1 block 255042;

System altered.





SQL> oradebug setmypid;
Statement processed.
SQL> oradebug tracefile_name;
/s01/admin/G10R21/udump/g10r21_ora_8430.trc

data_block_dump,data header at 0x745765c
===============
tsiz: 0x1fa0
hsiz: 0x14
pbl: 0x0745765c
bdba: 0x0043e442
     76543210
flag=--------
ntab=1
nrow=1
frre=-1
fsbo=0x14
fseo=0x1ba7
avsp=0x1b93
tosp=0x1b93
0xe:pti[0]      nrow=1  offs=0
0x12:pri[0]     offs=0x1ba7
block_row_dump:
tab 0, row 0, @0x1ba7
tl: 1017 fb: --H-FL-- lb: 0x1  cc: 3
col  0: [ 3]  c2 0a 64
col  1: [999]
4d 41 43 4c 45 41 4e 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20
........................................
col  2: [ 7]  78 70 05 06 0c 10 26
end_of_block_dump







TL =   flag( fb 1bytes )  + lock (lb 1bytes ) + cols(cc 1 bytes )  + col0 length (指记录col长度的) + col0 bytes + col1 length + col1 bytes + .........


在上例中 TL =  1 bytes  +  1 bytes + 1 bytes + 1 bytes + 3bytes + 3 bytes + 999 bytes + 1 bytes + 7 bytes = 1017 bytes


block 本身并不记录 TL , 但是 block dump会列出TL


BBED> p *kdbr[0]
rowdata[0]
----------
ub1 rowdata[0]                              @7171     0x2c

BBED> x /r offset 7171
rowdata[0]                                  @7171   
----------
flag@7171: 0x2c (KDRHFL, KDRHFF, KDRHFH)
lock@7172: 0x01
cols@7173:    3

col    0[3] @7174:  0xc2  0x0a  0x64
col  1[999] @7178:  0x4d  0x41  0x43  0x4c  0x45  0x41  0x4e  0x20  0x20  0x20
..........
col    2[7] @8180:  0x78  0x70  0x05  0x06  0x0c  0x10  0x26

回复 只看该作者 道具 举报

3#
发表于 2012-5-6 23:35:06
在你的例子中:

tl: 23 fb: --H-FL-- lb: 0x1  cc: 4
col  0: [ 2]  c1 02
col  1: [ 2]  ce d2
col  2: [ 7]  78 70 05 06 01 01 01
col  3: [ 5]  61 20 20 20 20


TL =    1 bytes + 1bytes +1 bytes +  1 bytes + 2 byes + 1bytes + 2 bytes + 1bytes + 7 bytes + 1bytes +5 bytes = 23 bytes

tl: 17 fb: --H-FL-- lb: 0x1  cc: 3
col  0: [ 2]  c1 03
col  1: [ 2]  c3 c7
col  2: [ 7]  78 70 05 07 01 01 01

TL  =  1 bytes + 1 bytes + 1 bytes + 1 bytes + 2 bytes + 1bytes +2 bytes + 1 bytes + 7 bytes = 17 bytes

回复 只看该作者 道具 举报

4#
发表于 2012-5-7 10:37:23
多谢liu指点,原以为每行所占行目录区中的2个字节也有计算进去。

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 13:36 , Processed in 0.046972 second(s), 21 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569