bbed查看常见的几种数据块
1、普通数据块结构
2、索引数据块结构
3、undo数据块结构
4、文件头数据块结构
如下:
1、普通数据块结构
BBED> set dba 5,1541
DBA 0x01400605 (20973061 5,1541)
BBED> map
File: /u01/app/oracle/oradata/ora1/bbed_test01.dbf (5)
Block: 1541 Dba:0x01400605
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 96 bytes @20
struct kdbh, 14 bytes @124
struct kdbt[1], 4 bytes @138
sb2 kdbr[76] @142
ub1 freespace[858] @294
ub1 rowdata[7036] @1152
ub4 tailchk @8188
BBED> map /v
File: /u01/app/oracle/oradata/ora1/bbed_test01.dbf (5)
Block: 1541 Dba:0x01400605
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
ub1 type_kcbh @0
ub1 frmt_kcbh @1
ub1 spare1_kcbh @2
ub1 spare2_kcbh @3
ub4 rdba_kcbh @4
ub4 bas_kcbh @8
ub2 wrp_kcbh @12
ub1 seq_kcbh @14
ub1 flg_kcbh @15
ub2 chkval_kcbh @16
ub2 spare3_kcbh @18
struct ktbbh, 96 bytes @20
ub1 ktbbhtyp @20
union ktbbhsid, 4 bytes @24
struct ktbbhcsc, 8 bytes @28
sb2 ktbbhict @36
ub1 ktbbhflg @38
ub1 ktbbhfsl @39
ub4 ktbbhfnx @40
struct ktbbhitl[3], 72 bytes @44
struct kdbh, 14 bytes @124
ub1 kdbhflag @124
sb1 kdbhntab @125
sb2 kdbhnrow @126
sb2 kdbhfrre @128
sb2 kdbhfsbo @130
sb2 kdbhfseo @132
sb2 kdbhavsp @134
sb2 kdbhtosp @136
struct kdbt[1], 4 bytes @138
sb2 kdbtoffs @138
sb2 kdbtnrow @140
sb2 kdbr[76] @142
ub1 freespace[858] @294
ub1 rowdata[7036] @1152
ub4 tailchk @8188
2、索引数据块结构
BBED> set dba 5,163
DBA 0x014000a3 (20971683 5,163)
BBED> map
File: /u01/app/oracle/oradata/ora1/bbed_test01.dbf (5)
Block: 163 Dba:0x014000a3
------------------------------------------------------------
KTB Data Block (Index Branch)
struct kcbh, 20 bytes @0
struct ktbbh, 48 bytes @20
struct kdxbr, 24 bytes @76
sb2 kd_off[179] @100
ub1 freespace[6078] @458
ub1 rowdata[1592] @6536
ub4 tailchk @8188
BBED> map /v
File: /u01/app/oracle/oradata/ora1/bbed_test01.dbf (5)
Block: 163 Dba:0x014000a3
------------------------------------------------------------
KTB Data Block (Index Branch)
struct kcbh, 20 bytes @0
ub1 type_kcbh @0
ub1 frmt_kcbh @1
ub1 spare1_kcbh @2
ub1 spare2_kcbh @3
ub4 rdba_kcbh @4
ub4 bas_kcbh @8
ub2 wrp_kcbh @12
ub1 seq_kcbh @14
ub1 flg_kcbh @15
ub2 chkval_kcbh @16
ub2 spare3_kcbh @18
struct ktbbh, 48 bytes @20
ub1 ktbbhtyp @20
union ktbbhsid, 4 bytes @24
struct ktbbhcsc, 8 bytes @28
sb2 ktbbhict @36
ub1 ktbbhflg @38
ub1 ktbbhfsl @39
ub4 ktbbhfnx @40
struct ktbbhitl[1], 24 bytes @44
struct kdxbr, 24 bytes @76
struct kdxbrxco, 16 bytes @76
ub4 kdxbrlmc @92
sb2 kdxbrsno @96
sb2 kd_off[179] @100
ub1 freespace[6078] @458
ub1 rowdata[1592] @6536
ub4 tailchk @8188
3、undo数据块结构
BBED> set dba 3,129
DBA 0x00c00081 (12583041 3,129)
BBED> map
File: /u01/app/oracle/oradata/ora1/undotbs01.dbf (3)
Block: 129 Dba:0x00c00081
------------------------------------------------------------
Undo Data
struct kcbh, 20 bytes @0
struct ktubh, 132 bytes @20
ub1 freespace[32] @152
ub1 undodata[8004] @184
ub4 tailchk @8188
BBED> map /v
File: /u01/app/oracle/oradata/ora1/undotbs01.dbf (3)
Block: 129 Dba:0x00c00081
------------------------------------------------------------
Undo Data
struct kcbh, 20 bytes @0
ub1 type_kcbh @0
ub1 frmt_kcbh @1
ub1 spare1_kcbh @2
ub1 spare2_kcbh @3
ub4 rdba_kcbh @4
ub4 bas_kcbh @8
ub2 wrp_kcbh @12
ub1 seq_kcbh @14
ub1 flg_kcbh @15
ub2 chkval_kcbh @16
ub2 spare3_kcbh @18
struct ktubh, 132 bytes @20
struct ktubhxid, 8 bytes @20
ub2 ktubhseq @28
ub1 ktubhcnt @30
ub1 ktubhirb @31
ub1 ktubhicl @32
ub1 ktubhflg @33
ub2 ktubhidx[59] @34
ub1 freespace[32] @152
ub1 undodata[8004] @184
ub4 tailchk @8188
4、文件头数据块结构
BBED> set dba 1,1
DBA 0x00400001 (4194305 1,1)
BBED> map
File: /u01/app/oracle/oradata/ora1/system01.dbf (1)
Block: 1 Dba:0x00400001
------------------------------------------------------------
Data File Header
struct kcvfh, 860 bytes @0
ub4 tailchk @8188
BBED> map /v
File: /u01/app/oracle/oradata/ora1/system01.dbf (1)
Block: 1 Dba:0x00400001
------------------------------------------------------------
Data File Header
struct kcvfh, 860 bytes @0
struct kcvfhbfh, 20 bytes @0
struct kcvfhhdr, 76 bytes @20
ub4 kcvfhrdb @96
struct kcvfhcrs, 8 bytes @100
ub4 kcvfhcrt @108
ub4 kcvfhrlc @112
struct kcvfhrls, 8 bytes @116
ub4 kcvfhbti @124
struct kcvfhbsc, 8 bytes @128
ub2 kcvfhbth @136
ub2 kcvfhsta @138
struct kcvfhckp, 36 bytes @484
ub4 kcvfhcpc @140
ub4 kcvfhrts @144
ub4 kcvfhccc @148
struct kcvfhbcp, 36 bytes @152
ub4 kcvfhbhz @312
struct kcvfhxcd, 16 bytes @316
sword kcvfhtsn @332
ub2 kcvfhtln @336
text kcvfhtnm[30] @338
ub4 kcvfhrfn @368
struct kcvfhrfs, 8 bytes @372
ub4 kcvfhrft @380
struct kcvfhafs, 8 bytes @384
ub4 kcvfhbbc @392
ub4 kcvfhncb @396
ub4 kcvfhmcb @400
ub4 kcvfhlcb @404
ub4 kcvfhbcs @408
ub2 kcvfhofb @412
ub2 kcvfhnfb @414
ub4 kcvfhprc @416
struct kcvfhprs, 8 bytes @420
struct kcvfhprfs, 8 bytes @428
ub4 kcvfhtrt @444
ub4 tailchk @8188
总结:不同的数据块有不同的结构,也有相同的结构。