ITPub博客

首页 > 数据库 > Oracle > oracle特殊恢复:BBED-SHOW/INFO/MAP命令

oracle特殊恢复:BBED-SHOW/INFO/MAP命令

原创 Oracle 作者:a960549548 时间:2024-07-01 15:30:09 0 删除 编辑

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显示的具体信息解释如下:

struct kcbh  ubltype kcbh  frmt kcbh  wrp2_kcbh  ub 4  rdba kcbh  ub 4  bas kcbh  ub2wrp_kcbh  se kcbh  fl g_kcbh  20  b tes  Bl Ock Header Structure  Block type(see Header Block Types below)  Block format 1=0rac1e 7 2=0rac1e 8+  Not used  RDBA —Relative Data Block Address  SCN Base  SCN Wra  Sequence nu_mber, incremented for every change made to the block at the same SCN  Ox01 New Block  Ox02 Delayed Logging Change advanced SCN/seq Ox04 Check value saved — block XOR  zero  Ox08 T em or ar bl Ock  O tional block checksum (if DB BLOCK CHECKSUM-TRUE)  Not used  Transaction Fixed Header Structure  Block type (I-DATA 2=1NDEX)  Segment/Object ID  SCN at last block cleanout  Nu_mber of IT L slots  0=on the freelist  IT L TX freelist slot  DBA of next block on the freelist  IT L list index  Data Header Structure  N=pctfree hit (clusters) F=do not put on freelist: K=flushable cluster keys  Nu_mber of tables in clusters)  Nu_mber of rows  First free row entry index: —1 = vou have to add one  Freespace beginoffset  Freespace end offset  Available space in the block  Total available s ace when all TXs commit  Table Director Entr Structure  Rov Director  Free S ace  Rov Data  (See Tail checks bel o.)  s to  chkval kcbh  s are3 kcbh  struct k tbbh 96 b tes  ubl ktbbht  l_mion k tbbhsid 4 bytes  struct ktbbhcsc, 8 bytes  sb2 ktbbhict  ubl ktbbhfl  ubl ktbbhfsl  ktbbhfnx  struct k tbbhitl [3] 72 b  struct kdbh, 14 bytes  tes  sbl  s b2  s b2  s b2  s b2  s b2  s b2  kdbhflag  k dbhntab  k dbhnr ow  kdbhfrre  kdbhfsbo  kdbhfseo  kdbhavs  kdbhtos  struct kdbt[l]  sb2 kdbtoffs  sb2 kdbtnrow  sb2 kdbr[65]  4 b tes  ubl frees ace [857]  ubl rovdata[7067]  ub4 tail chk

 

------不同的block 可以第一个byte的值是不一样的。 具体值对应block 类型如下:

ID  01  02  03  04  05  06  07  08  09  10  11  Type  Undo  Undo  Save  Save  Data  segment heade  data block  l_mdo header  l_mdo data blcok  segmentheader (temp, index, data and so on)  K TB manageddata block (with IT L)  Temp table data block (no IT L)  Sort Ke  Sort Run  Segment free list block  Data file header

 

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/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
Oracle ACE,MySQL 8.0 OCP,PMP,拥有OceanBase OBCP,TiDB PCTP,GoldenDB GDCP等多项认证,ITPUB认证专家,微信公众号:DBA之友。

注册时间:2022-02-08

  • 博文量
    132
  • 访问量
    171523