Skip to content

Block结构 :使用BBED的方法

 

 datafile.txt
 1 /oracle/oradata/znjtepp/system01.dbf                                              828375040
 2 /oracle/oradata/znjtepp/XSPGIMS_DEVICE.dbf                                       3877634048
 3 /oracle/oradata/znjtepp/sysaux01.dbf                                              513802240
 4 /oracle/oradata/znjtepp/users01.dbf                                               473169920
 5 /oracle/oradata/znjtepp/undotbs1.dbf                                             4294967296
 6 /oracle/oradata/znjtepp/XSPGIMS_FILE.dbf                                         3328180224
 7 /oracle/oradata/znjtepp/XSPGIMS_FUEL.dbf                                          524288000
 8 /oracle/oradata/znjtepp/XSPGIMS_MATERIAL.dbf                                      524288000
 9 /oracle/oradata/znjtepp/XSPGIMS_PLAN.dbf                                          524288000
10 /oracle/oradata/znjtepp/XSPGIMS_PRODUCE.dbf                                      2359296000
11 /oracle/oradata/znjtepp/XSPGIMS_SEQURITY.dbf                                      104857600
12 /oracle/oradata/znjtepp/XSPGIMS_SYSTEM.dbf                                        943718400
13 /oracle/oradata/znjtepp/XSPGIMS_OTHER.dbf                                         314572800
14 /oracle/oradata/znjtepp/RIMS_DATA.dbf                                             209715200
15 /oracle/oradata/znjtepp/XSPGIMS_MONITOR.dbf                                       314572800
16 /oracle/oradata/znjtepp/XSPGIMS_HUMANRESOURCE.dbf                                 314572800
17 /oracle/oradata/TS1.ORA                                                             1048576
18 /oracle/oradata/TS2.ORA                                                             1048576
19 /oracle/oradata/TS3.ORA                                                             1048576
20 /oracle/oradata/TS4.ORA                                                             1048576
21 /oracle/oradata/TS5.ORA                                                             1048576
22 /oracle/oradata/TS6.ORA                                                             1048576
23 /oracle/oradata/TS7.ORA                                                             1048576
24 /oracle/oradata/TS8.ORA                                                             1048576
25 /oracle/oradata/TS9.ORA                                                             1048576
26 /oracle/oradata/TS10.ORA                                                            1048576
27 /oracle/oradata/TS11.ORA                                                            1048576
28 /oracle/oradata/TS12.ORA                                                            1048576
29 /oracle/oradata/TSI1.ORA                                                            1048576
30 /oracle/oradata/TSI2.ORA                                                            1048576
31 /oracle/oradata/TSI3.ORA                                                            1048576
32 /oracle/oradata/TSI4.ORA                                                            1048576
33 /oracle/oradata/TSI5.ORA                                                            1048576
34 /oracle/oradata/TSI6.ORA                                                            1048576
35 /oracle/oradata/TSI7.ORA                                                            1048576
36 /oracle/oradata/TSI8.ORA                                                            1048576
37 /oracle/oradata/TSI9.ORA                                                            1048576
38 /oracle/oradata/TSI10.ORA                                                           1048576
39 /oracle/oradata/TSI11.ORA                                                           1048576
40 /oracle/oradata/TSI12.ORA                                                           1048576
 
para.txt
blocksize=8192
listfile=datafile.txt
mode=edit
 
 
 
SQL> select header_file,header_block from dba_segments where owner='LUDA' and segment_name = 'T1';
 
HEADER_FILE HEADER_BLOCK
———– ————
          4        18587
这里以表t1的段头为例
 
RDBA由,rfile# + block#组成的
相对文件号10位 block号22位
先算22位的BLOCK,其他的就是FILE
如果是ROWID的话,先算16的slot
#########################set 命令################################################
 
set 命令 定位数据块。
例子
定位 4号文件的18587号块
set file 4 block 18587
用rdba定位的话先换算 file 4 和 18587 号块
从右边开始算起   18587 对应2进制 00 0000 0100 1000 1001 1011 
                 4   对应2进制  100
                 所以这里rdba为  0000 0010 000 0000 0100 1000 1001 1011 转换成16进制为 0x100489b
                 
                 所以也可以定位成:
                 set dba 0x100489b
                 BBED> set dba 0x100489b
                 DBA             0x0100489b (16795803 4,18587)
                 
###工具包换算10进制 dbms_utility.data_block_address_file 
用法
SQL> select dbms_utility.data_block_address_file(20971712) "file",dbms_utility.data_block_address_block(20971712) "block" from dual;
 
      file      block
———- ———-
         5        192
###
set dba 4,18587     
BBED> set dba 4,18587    
        DBA             0x0100489b (16795803 4,18587)
 
 
set filename
BBED> set filename "/oracle/oradata/znjtepp/users01.dbf"
      FILENAME        /oracle/oradata/znjtepp/users01.dbf 
      
set file
BBED> set file 4
      FILE#           4
 
set block and set block + ora –
BBED> set block 100
        BLOCK#          100
BBED> set block +100
        BLOCK#          200
BBED> set block +20
        BLOCK#          220
BBED> set block -200
        BLOCK#          20
 
set blocksize 
set listfile这两个set都是用在切换配置文件时候用的
 
#设置屏幕显示区域
BBED> set width 100
        WIDTH           100
        
########################offset 偏移量 以及count #################################################
offset 偏移量
 
 
BBED> dump
 File: /oracle/oradata/znjtepp/users01.dbf (4)
 Block: 18587            Offsets:    0 to  511           Dba:0x0100489b
————————————————————————
 23a20000 0100489b 0031fc19 00000104 f8880000 00000000 00000000 00000000 
 00000000 00000011 00000100 0a9c0000 00000010 00000080 00000080 01004989 
 00000000 00000010 00000000 000000f4 00000000 00000000 00000000 00000010
 …..
 
 
BBED> set offset 200
        OFFSET          200
 
BBED> dump
 File: /oracle/oradata/znjtepp/users01.dbf (4)
 Block: 18587            Offsets:  200 to  711           Dba:0x0100489b
————————————————————————
 00000000 00000000 00010000 00002000 00000000 00001434 00000000 0100489a 
 00000001 0100490a 0100489a 00000000 00000000 00000000 00000000 00000000 
 00000011 00000000 0000d7c4 10000000 01004899 00000008 010048a1 00000008 
 ….
 
 count可以设置dump的内容
 
 例:
 
 BBED> set count 5000
        COUNT           5000
 BBED> dump 
 File: /oracle/oradata/znjtepp/users01.dbf (4)
 Block: 18587            Offsets:  200 to 5199           Dba:0x0100489b
————————————————————————
 00000000 00000000 00010000 00002000 00000000 00001434 00000000 0100489a 
 00000001 0100490a 0100489a 00000000 00000000 00000000 00000000 00000000 
 00000011 00000000 0000d7c4 10000000 01004899 00000008 010048a1 00000008
….
BBED> set file 4 block 18587
        FILE#           4
        BLOCK#          18587
 
BBED> set count 20
        COUNT           20
##/v翻译内容
BBED> dump /v
 File: /oracle/oradata/znjtepp/users01.dbf (4)
 Block: 18587   Offsets:    0 to   19  Dba:0x0100489b
——————————————————-
 23a20000 0100489b 0031fc19 00000104 l #…..H..1……
 f8880000                            l ….
 
 <16 bytes per line>
 
 
 
##可以通过show ,info显示当前的设置情况
BBED> show
        FILE#           4
        BLOCK#          20
        OFFSET          0
        DBA             0x01000014 (16777236 4,20)
        FILENAME        /oracle/oradata/znjtepp/users01.dbf
        BIFILE          bifile.bbd
        LISTFILE        datafile.txt
        BLOCKSIZE       8192
        MODE            Edit
        EDIT            Unrecoverable
        IBASE           Dec
        OBASE           Dec
        WIDTH           100
        COUNT           5000
        LOGFILE         log.bbd
        SPOOL           No
BBED> info
 File#  Name                                                                            Size(blks)
 —–  —-                                                                            ———-
     1  /oracle/oradata/znjtepp/system01.dbf                                                101120
     2  /oracle/oradata/znjtepp/XSPGIMS_DEVICE.dbf                                          473344
     3  /oracle/oradata/znjtepp/sysaux01.dbf                                                 62720
     4  /oracle/oradata/znjtepp/users01.dbf                                                  57760
     5  /oracle/oradata/znjtepp/undotbs1.dbf                                                     0
     6  /oracle/oradata/znjtepp/XSPGIMS_FILE.dbf                                            406272
     7  /oracle/oradata/znjtepp/XSPGIMS_FUEL.dbf                                             64000
     8  /oracle/oradata/znjtepp/XSPGIMS_MATERIAL.dbf                                         64000
     9  /oracle/oradata/znjtepp/XSPGIMS_PLAN.dbf                                             64000
    10  /oracle/oradata/znjtepp/XSPGIMS_PRODUCE.dbf                                         288000
    11  /oracle/oradata/znjtepp/XSPGIMS_SEQURITY.dbf                                         12800
    12  /oracle/oradata/znjtepp/XSPGIMS_SYSTEM.dbf                                          115200
    13  /oracle/oradata/znjtepp/XSPGIMS_OTHER.dbf                                            38400
    14  /oracle/oradata/znjtepp/RIMS_DATA.dbf                                                25600
    15  /oracle/oradata/znjtepp/XSPGIMS_MONITOR.dbf                                          38400
    16  /oracle/oradata/znjtepp/XSPGIMS_HUMANRESOURCE.dbf                                    38400        
……
 
############################find 命令###################################
map 命令
用于显示数据块的逻辑结构和这些逻辑结构的偏移量,一般配合/v参数使用
 
 
BBED> map /v dba 4,1
 File: /oracle/oradata/LUDA/datafile/o1_mf_users_6zlksyqo_.dbf (4)
 Block: 1                                     Dba:0x01000001
————————————————————
 Data File Header
 
 struct kcvfh, 676 bytes                    @0       
    struct kcvfhbfh, 20 bytes               @0       
    struct kcvfhhdr, 76 bytes               @20      
    ub4 kcvfhrdb                            @96      
    struct kcvfhcrs, 8 bytes                @100     
    ub4 kcvfhcrt                            @108  
    ……