1、show命令
显示当前的配置:
BBED> show
FILE# 1
BLOCK# 14
OFFSET 0
DBA 0x0040000e (4194318 1,14) ------这里block是14,是刚才设置所致
FILENAME /u01/app/oracle/oradata/T1/system01.dbf
BIFILE bifile.bbd
LISTFILE /u01/app/bbed_profile/bbed_filelist.txt
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 200
COUNT 512
LOGFILE log.bbd
SPOOL No
2、info命令
显示当前可以进行browse 或者edit 的file。 即我们 filelist 里指定的 datafile 信息。
BBED> set width 65
WIDTH 65
BBED> info
File# Name Size(blks)
----- ---- ----------
1 /u01/app/oracle/oradata/T1/system01.dbf 119040
3 /u01/app/oracle/oradata/T1/sysaux01.dbf 90880
4 /u01/app/oracle/oradata/T1/undotbs01.dbf 42880
5 /u01/app/oracle/oradata/T1/pdbseed/system01 34560
6 /u01/app/oracle/oradata/T1/pdbseed/sysaux01 42240
7 /u01/app/oracle/oradata/T1/users01.dbf 640
8 /u01/app/oracle/oradata/T1/pdbseed/undotbs0 12800
9 /u01/app/oracle/oradata/T1/pdb/system01.dbf 35840
10 /u01/app/oracle/oradata/T1/pdb/sysaux01.dbf 46080
11 /u01/app/oracle/oradata/T1/pdb/undotbs01.db 12800
12 /u01/app/oracle/oradata/T1/pdb/users01.dbf 640
16 /u01/app/oracle/oradata/T1/pdb/test.dbf 1280
3、Map命令
Map会通过偏移量来 显示block里的详细信息,如block header,data block header 和row directory。 使用/v 选项,可以查看更详细的信息。
在不指定block的情况下,会显示当前block的信息,如果想显示其他block的信息,可以使用file name,file id,block 和DBA 来指定要显示的block。
BBED> map
File: /u01/app/oracle/oradata/T1/system01.dbf (1)
Block: 116538 Dba:0x0041c73a
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 96 bytes @20
struct kdbh, 14 bytes @116
struct kdbt[1], 4 bytes @130
sb2 kdbr[65] @134
ub1 freespace[857] @264
ub1 rowdata[7067] @1121
ub4 tailchk @8188
------这个是默认情况,@后边表示的是对应信息在block里的偏移量,即offset。
------通过dba来指定某个block
BBED> map /v dba 1,116538
File: /u01/app/oracle/oradata/T1/system01.dbf (1)
Block: 116538 Dba:0x0041c73a
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
ub1 type_kcbh @0
ub1 frmt_kcbh @1
ub2 wrp2_kcbh @2
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 @116
ub1 kdbhflag @116
sb1 kdbhntab @117
sb2 kdbhnrow @118
sb2 kdbhfrre @120
sb2 kdbhfsbo @122
sb2 kdbhfseo @124
sb2 kdbhavsp @126
sb2 kdbhtosp @128
struct kdbt[1], 4 bytes @130
sb2 kdbtoffs @130
sb2 kdbtnrow @132
sb2 kdbr[65] @134
ub1 freespace[857] @264
ub1 rowdata[7067] @1121
ub4 tailchk @8188
------通过block来map
BBED> map block 116538
File: /u01/app/oracle/oradata/T1/system01.dbf (1)
Block: 116538 Dba:0x0041c73a
------------------------------------------------------------
KTB Data Block (Table/Cluster)
struct kcbh, 20 bytes @0
struct ktbbh, 96 bytes @20
struct kdbh, 14 bytes @116
struct kdbt[1], 4 bytes @130
sb2 kdbr[65] @134
ub1 freespace[857] @264
ub1 rowdata[7067] @1121
ub4 tailchk @8188
Map显示的具体信息解释如下:
------不同的block 可以第一个byte的值是不一样的。 具体值对应block 类型如下:
oracleblocks 的最后4个bytes 是tail check。看一下oracle 9i block的tail check 组成。
Oracleblock tail 由4个bytes组成,但实际上只用了低2个bytes来存放。 2个bytes的tail 由scn base,block type 和 scn sequence 组成。
------例如,如果SCN基号为0x00029728,块类型为06,SCN序列号为0x02,则尾部检查将为0x97280602
SCN base Type SCN seq
---------- ------ ---------
9728 06 02
虽然tail check 由3个部分组成,但是oracle 把这3部分作为一个整体来存储,并且占用4个bytes。
对于little-endian(低端)架构的机器,包括Intel, 他们会先存放low-order byte,即低位字节。
可以通过标准block editor 或者dump 来查看tail check。 对于不同的机器,他们存储的顺序是不一样的。比如tail check 0x97280602 在Intel Machine 就被存储为02062897,因为它会先保存low-order bytes。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/70013625/viewspace-3020776/ ,如需转载,请注明出处,否则将追究法律责任。