千家信息网

BBED工具的安装使用(一)

发表于:2024-09-24 作者:千家信息网编辑
千家信息网最后更新 2024年09月24日,BBED是用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较有用。要想使用该工具,需用户自己安装,在Oracle
千家信息网最后更新 2024年09月24日BBED工具的安装使用(一)

BBED用来直接查看和修改数据文件数据的一个工具,是Oracle一款内部工具,可以直接修改Oracle数据文件块的内容,在一些极端恢复场景下比较有用。要想使用该工具,需用户自己安装,在Oracle 9i10g版本中,安装的方法很简单:

[oracle@node1 u01]$ cd $ORACLE_HOME/rdbms/lib/

[oracle@node1 lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed

Linking BBED utility (bbed)

rm -f /u01/app/oracle/10.2.0/db_1/rdbms/lib/bbed

gcc -o /u01/app/oracle/10.2.0/db_1/rdbms/lib/bbed -L/u01/app/oracle/10.2.0/db_1/rdbms/lib/ -L/u01/app/oracle/10.2.0/db_1/lib/ -L/u01/app/oracle/10.2.0/db_1/lib/stubs/ -L/usr/lib -lirc /u01/app/oracle/10.2.0/db_1/lib/s0main.o /u01/app/oracle/10.2.0/db_1/rdbms/lib/ssbbded.o /u01/app/oracle/10.2.0/db_1/rdbms/lib/sbbdpt.o `cat /u01/app/oracle/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 /u01/app/oracle/10.2.0/db_1/rdbms/lib/defopt.o -ldbtools10 -lclntsh `cat /u01/app/oracle/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /u01/app/oracle/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lmm -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /u01/app/oracle/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lnro10 `cat /u01/app/oracle/10.2.0/db_1/lib/ldflags` -lnsslb10 -lncrypt10 -lnsgr10 -lnzjs10 -ln10 -lnnz10 -lnl10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 -lclient10 -lnnetd10 -lvsn10 -lcommon10 -lgeneric10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lcore10 -lsnls10 -lnls10 -lxml10 -lcore10 -lunls10 -lsnls10 -lnls10 -lcore10 -lnls10 `cat /u01/app/oracle/10.2.0/db_1/lib/sysliblist` -Wl,-rpath,/u01/app/oracle/10.2.0/db_1/lib -lm `cat /u01/app/oracle/10.2.0/db_1/lib/sysliblist` -ldl -lm -L/u01/app/oracle/10.2.0/db_1/lib

Oracle11g中缺省不提供BBET库文件,如果需要可以将10g中的文件copy11g相应目录再执行安装:

$ORACLE_HOME/rdbms/lib/ssbbded.o

$ORACLE_HOME/rdbms/lib/sbbdpt.o
$ORACLE_HOME/rdbms/mesg/bbedus.msb

$ORACLE_HOME/rdbms/mesg/bbedus.msg

在第一次使用时会发现有默认的口令,从这里可以看出oraclebbed工具的限制,默认的密码是blockedit

[oracle@node1 ~]$ cd $ORACLE_HOME/rdbms/lib

[oracle@node1 lib]$ ./bbed

Password:

BBED: Release 2.0.0.0.0 - Limited Production on Thu Jul 10 16:09:57 2014

Copyright (c) 1982, 2005, Oracle. All rights reserved.

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

查看一下bbed 命令

BBED> help all

SET DBA [ dba | file#, block# ]

SET FILENAME 'filename'

SET FILE file#

SET BLOCK [+/-]block#

SET OFFSET [ [+/-]byte offset | symbol | *symbol ]

SET BLOCKSIZE bytes

SET LIST[FILE] 'filename'

SET WIDTH character_count

SET COUNT bytes_to_display

SET IBASE [ HEX | OCT | DEC ]

SET OBASE [ HEX | OCT | DEC ]

SET MODE [ BROWSE | EDIT ]

SET SPOOL [ Y | N ]

SHOW [ | ALL ]

INFO

MAP[/v] [ DBA | FILENAME | FILE | BLOCK ]

DUMP[/v] [ DBA | FILENAME | FILE | BLOCK | OFFSET | COUNT ]

PRINT[/x|d|u|o|c] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]

EXAMINE[/Nuf] [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]

:

N - a number which specifies a repeat count.

u - a letter which specifies a unit size:

b - b1, ub1 (byte)

h - b2, ub2 (half-word)

w - b4, ub4(word)

r - Oracle table/index row

f - a letter which specifies a display format:

x - hexadecimal

d - decimal

u - unsigned decimal

o - octal

c - character (native)

n - Oracle number

t - Oracle date

i - Oracle rowid

FIND[/x|d|u|o|c] numeric/character string [ TOP | CURR ]

COPY [ DBA | FILE | FILENAME | BLOCK ] TO [ DBA | FILE | FILENAME | BLOCK ]

MODIFY[/x|d|u|o|c] numeric/character string

[ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]

ASSIGN[/x|d|u|o] =

: [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]

: [ value | ]

SUM [ DBA | FILE | FILENAME | BLOCK ] [ APPLY ]

PUSH [ DBA | FILE | FILENAME | BLOCK | OFFSET ]

POP [ALL]

REVERT [ DBA | FILE | FILENAME | BLOCK ]

UNDO

HELP [ | ALL ]

VERIFY [ DBA | FILE | FILENAME | BLOCK ]

CORRUPT [ DBA | FILE | FILENAME | BLOCK ]

set 设定当前的环境

show 查看当前的环境参数,跟sqlplus的同名命令类似。

dump 列出指定block的内容

find 在指定的block中查找指定的字符串,结果是显示出字符串,及其偏移量--offset,偏移量就是在block中的字节数

modify 修改指定block的指定偏移量的值,可以在线修改。

copy 把一个block的内容copy到另一个block

verify 检查当前环境是否有坏块

sum 计算blockchecksummodify之后block就被标识为坏块,current checksumreqired checksum不一致,sum命令可以计算出新的checksum并应用到当前块。

undo 回滚当前的修改操作,如果手误做错了,undo一下就ok了,回到原来的状态。

revert 回滚所有之前的修改操作,意思就是 undo all

bbed配置一个参数文本

制作bbed列表

SQL> set heading off;

SQL> set feedback off;

SQL> spool /u01/bbedlist.parf

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

1 /u01/app/oracle/oradata/orcl_dup/system01.dbf 524288000

3 /u01/app/oracle/oradata/orcl_dup/sysaux01.dbf 346030080

4 /u01/app/oracle/oradata/orcl_dup/users01.dbf 191365120

5 /u01/app/oracle/oradata/orcl_dup/example01.dbf 104857600

6 /u01/app/oracle/oradata/orcl_dup/tts01.dbf 20971520

7 /u01/app/oracle/oradata/orcl_dup/tts02.dbf 20971520

8 /u01/app/oracle/oradata/orcl_dup/undotbs001.dbf 104857600

SQL> spool off;

SQL> set heading on;

SQL> set feedback on;

制作parfile

[oracle@node1 lib]$ vi /u01/bbed.par

blocksize = 8192

listfile= /u01/bbedlist.parf

mode = edit

parfile启动bbed

[oracle@node1 lib]$ ./bbed parfile=/u01/bbed.par password=blockedit

BBED: Release 2.0.0.0.0 - Limited Production on Thu Jul 10 16:42:27 2014

Copyright (c) 1982, 2005, Oracle. All rights reserved.

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

BBED> show

FILE# 1

BLOCK# 1

OFFSET 0

DBA 0x00400001 (4194305 1,1)

FILENAME /u01/app/oracle/oradata/orcl_dup/system01.dbf

BIFILE bifile.bbd

LISTFILE /u01/bbedlist.parf

BLOCKSIZE 8192

MODE Edit

EDIT Unrecoverable

IBASE Dec

OBASE Dec

WIDTH 80

COUNT 512

LOGFILE log.bbd

SPOOL No

通过bbed获取指定数值的RDBARelative Data Block Address)

SQL> select * from bbed_test;

JOB

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

123456

1234567890

2 rows selected.

SQL> select

2 rowid,

3 dbms_rowid.rowid_relative_fno(rowid)rel_fno,

4 dbms_rowid.rowid_block_number(rowid)blockno,

5 dbms_rowid.rowid_row_number(rowid)rowno

6 from bbed_test;

ROWID REL_FNO BLOCKNO ROWNO

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

AAAN9GAAEAAAAK0AAA 4 692 0

AAAN9GAAEAAAAK0AAB 4 692 1

2 rows selected.

BBED> set dba 4,692 offset 0

DBA 0x010002b4 (16777908 4,692)

OFFSET 0

BBED> show

FILE# 4

BLOCK# 692

OFFSET 8168

DBA 0x010002b4 (16777908 4,692)

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

BIFILE bifile.bbd

LISTFILE /u01/bbedlist.parf

BLOCKSIZE 8192

MODE Edit

EDIT Unrecoverable

IBASE Dec

OBASE Dec

WIDTH 80

COUNT 512

LOGFILE log.bbd

SPOOL No

当然数据库中通过dbms_utility包也很容易就能获得,此处可以对比一下

SQL> variable get_rdba varchar2(30);

SQL> exec :dba :=dbms_utility.make_data_block_address(4,692);

PL/SQL procedure successfully completed.

SQL> print dba

DBA

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

16777908

工具 数据 内容 命令 文件 环境 偏移 参数 字符 字符串 就是 制作 一致 口令 场景 字节 密码 库文件 意思 数值 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络服务器论文 一个服务器可以建几个死亡骑士 全是32k的服务器游戏推荐 开展网络安全法律宣传活动 青岛服务器机柜导轨安装图 软件开发组长接其他公司的项目 河南微机必修三网络技术应用 比较好的服务器软件 方舟服务器可以刷铁吗 软件开发工作岗位求职意向 如何复制数据库表结构 社区网络安全经验总结信息 网络安全法wifi认证 u8应用服务器管理器 颁布实施了网络安全法 蓝色光标网络安全概念 授权管理器服务器吊销 大学慧与合作软件开发方向 国家网络安全局局长 十字绣设计软件开发 怎么复制数据库的字段 软件开发培训多少钱福州福清 中医传统知识保护数据库管理系统 区块链数据库越来越多 软件开发驻场哪家便宜 李玉婷mysql数据库讲解视频 计算机网络技术教程心得体会 SQL数据库新建库语句 数据库应用技术 可以到哪个数据库查找
0