暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

BBED使用

原创 南风 2020-11-09
989

在9i/10g中连接生成bbed:
cd$ORACLE_HOME/rdbms/lib
make-f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed

OracleDatabase 11g中缺省的未提供BBED库文件,但是可以用10g的文件编译出来,需要先从10g中复制如下文件到相应目录,然后再执行上述连接命令,参考如下步骤:
(1)复制Oracle 10g文件
Copy ORA10gHOME/rdbms/lib/ssbbded.otoORA10g_HOME/rdbms/lib/ssbbded.o toORA11g_HOME/rdbms/lib
Copy $ORA10g_HOME/rdbms/lib/sbbdpt.o to $ORA11g_HOME/rdbms/lib

Copy $ORA10g_HOME/rdbms/mesg/bbedus.msb to $ORA11g_HOME/rdbms/mesg
Copy $ORA10g_HOME/rdbms/mesg/bbedus.msg to $ORA11g_HOME/rdbms/mesg
Copy $ORA10g_HOME/rdbms/mesg/bbedar.msb to $ORA11g_HOME/rdbms/mesg --木有这个文件了。

(2)编译
make -f ORACLEHOME/rdbms/lib/insrdbms.mkBBED=ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed

2.2 使用BBED
BBED是Oracle 内部使用的命令,所以Oracle 不提供技术支持。 为了安全,BBED设置了口令保护,默认密码为blockedit。

[oracle@db2 bin]$ bbed
Password:
BBED-00113: Invalid password. Please rerunutility with the correct password.

[oracle@db2 bin]$ bbed
Password:

BBED: Release 2.0.0.0.0 - LimitedProduction on Thu Aug 11 18:51:47 2011

Copyright © 1982, 2005, Oracle. All rights reserved.

************* !!! For Oracle Internal Useonly !!! ***************

BBED>

   一般使用bbed,都是将一些配置信息写入到一个参数文本里,在调用bbed时,指定该参数文件。如:
   $bbedparfile=bbed.par
复制

相关的参数可以通过help 查看:
[oracle@db2 admin]$ bbed help=y
PASSWORD - Required parameter
FILENAME - Database file name
BLOCKSIZE - Database block size
LISTFILE - List file name
MODE - [browse/edit]
SPOOL - Spool to logfile [no/yes]
CMDFILE - BBED command file name
LOGFILE - BBED log file name
PARFILE - Parameter file name
BIFILE - BBED before-image file name
REVERT - Rollback changes from BIFILE[no/yes]
SILENT - Hide banner [no/yes]
HELP - Show all valid parameters [no/yes]

这里我们先演示一个示例。
(1)先获取datafile 的信息
将datafile 的信息写入一个文件,格式为:文件编号 文件名字 文件大小。可以通过如下SQL 获取:
set pages 200
select file#||’ ‘||name||’ '||bytes from v$datafile ;

1 /u01/app/oracle/oradata/dave/system01.dbf 1090519040
2 /u01/app/oracle/oradata/dave/sysaux01.dbf 775946240
3 /u01/app/oracle/oradata/dave/undotbs01.dbf 146800640
4 /u01/app/oracle/oradata/dave/users01.dbf 17039360
5 /u01/app/oracle/oradata/dave/example01.dbf 363069440
6 /u01/app/oracle/oradata/dave/mssm01.dbf 104857600
7 /u01/app/oracle/oradata/dave/assm01.dbf 104857600
8 /u01/app/oracle/oradata/dave/FDA01.dbf 104857600
9 /u01/app/oracle/oradata/dave/FDA02.dbf 104857600
10 /u01/app/oracle/oradata/dave/FDA03.dbf 104857600
11 /u01/app/oracle/oradata/dave/FDA04.dbf 104857600
12 /u01/app/oracle/oradata/dave/ts01.dbf 104857600
13 /u01/app/oracle/oradata/dave/ts02.dbf 104857600
14 /u01/app/oracle/oradata/dave/dave01.dbf 209715200
15 /u01/app/oracle/oradata/dave/anqing01.dbf 209715200
16 /u01/app/oracle/oradata/dave/block01.dbf 104857600

   注意,这里的file id。 我们这里的file id 和 oracle 系统内部的file id 相同。 当然这个id 我们也可以自己指定。 当我们在bbed 里设置file id 时,就是根据这个参数文件中的的设置来的。 最好设置为相同,不然以后可能会混淆。
复制

将上面查询出来的datafile信息保存到文本里。

[oracle@db2 ~]$ cat /u01/filelist.txt
1/u01/app/oracle/oradata/dave2/system01.dbf 1761607680
2/u01/app/oracle/oradata/dave2/undotbs01.dbf 927989760
3/u01/app/oracle/oradata/dave2/sysaux01.dbf 398458880
4 /u01/app/oracle/oradata/dave2/users01.dbf5242880
5/u01/app/oracle/oradata/dave2/example01.dbf 104857600
6 /u01/app/oracle/oradata/dave2/dave01.dbf10485760
7/u01/app/oracle/oradata/dave2/undotbs02.dbf 1048576
8/u01/app/oracle/oradata/dave2/huaining01.dbf 52428800

(2) 创建parameter file:
[oracle@db2 ~]$ cat /u01/bbed.par
blocksize=8192
listfile=/u01/filelist.txt
mode=edit

(3)使用parameter file 连接bbed:

[oracle@db2 ~]$ bbed parfile=/u01/bbed.par
Password:

BBED: Release 2.0.0.0.0 - LimitedProduction on Thu Aug 11 20:47:49 2011

Copyright © 1982, 2005, Oracle. All rights reserved.

************* !!! For Oracle Internal Useonly !!! ***************

BBED> show
FILE# 1
BLOCK# 1
OFFSET 0
DBA 0x00400001(4194305 1,1)
FILENAME /u01/app/oracle/oradata/dave2/system01.dbf
BIFILE bifile.bbd
LISTFILE /u01/filelist.txt
BLOCKSIZE 8192
MODE Edit
EDIT Unrecoverable
IBASE Dec
OBASE Dec
WIDTH 80
COUNT 512
LOGFILE log.bbd
SPOOL No

案例

select file#||’ ’ ||name||’ '||bytes from v$datafile;

SQL> SQL> SQL> SQL> SQL> 1 /db/app/oracle/oradata/zcydb/system01.dbf 713031680
2 /db/app/oracle/oradata/zcydb/sysaux01.dbf 513802240
3 /db/app/oracle/oradata/zcydb/undotbs01.dbf 209715200
4 /db/app/oracle/oradata/zcydb/users01.dbf 19660800
5 /db/app/oracle/oradata/zcydb/example01.dbf 104857600
SQL> SQL> SQL> SQL> SQL>

[oracle@localhost lib]$ vi listfile.txt //把文件列表粘贴到listfile.txt里面。

[oracle@localhost lib]$ bbed
Password:

BBED: Release 2.0.0.0.0 - Limited Production on Wed Aug 5 21:20:34 2020

Copyright © 1982, 2009, Oracle and/or its affiliates. All rights reserved.

************* !!! For Oracle Internal Use only !!! ***************

BBED> set dba 4,1082
BBED-00312: no LISTFILE specified

BBED> set list ‘listfile.txt’
LISTFILE listfile.txt

BBED> set file 4
FILE# 4

BBED> set dba 4,1082
DBA 0x0100043a (16778298 4,1082)

BBED> map /v
File: /db/app/oracle/oradata/zcydb/users01.dbf (4)
Block: 1082 Dba:0x0100043a

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[70] @142

ub1 freespace[799] @282

ub1 rowdata[7107] @1081

ub4 tailchk @8188

BBED>

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论