oracle特殊恢复:BBED-SET命令

来源:这里教程网 时间:2026-03-03 20:08:33 作者:

1.1 set dba

创建test表

SQL>createtabletest asselect*fromdba_objects;

 

查看块信息

SQL> select rowid,dbms_rowid.rowid_relative_fno(rowid)rel_fno,dbms_rowid.rowid_block_number(rowid)blockno,dbms_rowid.rowid_row_number(rowid) rowno from test where object_id=100;

 

ROWID                 REL_FNO    BLOCKNO      ROWNO

------------------ ---------- ---------- ----------

AAASK0AABAAAcc6AAe          1     116538         30

 

BBED中设置file1,block 116538

BBED> set dba 1,116538

    DBA                0x0041c73a ( 4310842 1,116538)

------ 如果设置成功,会返回 block RDBA (Relative Data Block Address) rdba 就是 rowid 中的 rfile#+block# 。括号里面的是 DBA 值和 block file id

验证:

SQL> variable dba varchar2(30);

SQL> exec :dba :=dbms_utility.make_data_block_address(1,116538);

 

PL/SQL procedure successfully completed.

 

SQL> print dba

 

DBA

--------------------------------------------------------------------------------

4310842

 

1.2 set filename

BBED> set filename '/u01/app/oracle/oradata/T1/users01.dbf'            

    FILENAME           /u01/app/oracle/oradata/T1/users01.dbf

------必须是一个有效的datafile,并且要用单引号括起来

 

1.3 set file

BBED> set file 7

    FILE#              7

------这里的number,是之前在 filelist 文件里的 number。它可以 db 中的 file id 不一样,不过最好是一样以防混淆

 

1.4 set block

 

------这里的block是一个相对的位置,需要 先指定一个file,然后再指定block。即对应的file里的block。可以相对当前 block的位置进行+和-的操作。

BBED> set file 7

    FILE#              7

 

BBED> set block 116538

BBED-00309: out of range block number (116538)

 

 

BBED> set file 1

    FILE#              1

 

BBED> set block 116538

    BLOCK#             116538

 

BBED> set block +10

    BLOCK#             116548

 

BBED> set block -10

    BLOCK#             116538

 

1.5 set offset

 

------偏移量是相对 某个block里的偏移量,可以用+和-进行操作

BBED> set offset 20

    OFFSET             20

 

BBED> set offset +2

    OFFSET             22

 

BBED> set offset -2

    OFFSET             20

 

1.6 set blocksize

 

------设置当前的datafile的blocksize大小, 该大小必须和datafile的实际block 匹配,否则会报错。

 

BBED> set blocksize 8192

    BLOCKSIZE          8192

 

1.7 set listfile

 

------可以通过parameter file来指定bbed的属性,可以通过set来指定这些信息。对于listfile的文件,必须用单引号括起来。

 

BBED> set listfile '/u01/app/bbed_profile/bbed_filelist.txt'

    LISTFILE           /u01/app/bbed_profile/bbed_filelist.txt

 

1.8 set width

 

------设定当前屏幕亮度,默认是80

 

BBED> set width 200

    WIDTH              200

 

1.9 set count

 

------ 设置dump命令显示bytes的数量,默认是512bytes

 

BBED> set count 512  

    COUNT              512

 

1.10 set ibase

 

------设置内部的数字格式,默认是十进制。可以设置为十六进制或者八进制。设置完数字格式后,可以使用该格式来设置block,offset等。

BBED> set ibase hex

    IBASE              Hex

 

BBED> set block +D

    BLOCK#             14

 

BBED> set ibase decimal

    IBASE              Dec

 

1.11 set mode

 

------设置bbed 的模式,该默认有2种:browse 和 edit。browse 模式不允许进行修改。如果要修改,就选择edit模式。 这个在之前的配置文件里,选择了edit。

 

BBED> set mode browse

    MODE               Browse

 

BBED> set mode edit

    MODE               Edit

 

 

相关推荐