本文主要介绍 Oracle bbed 工具说明、使用测试 —Firsouler
概述
安装
注:windows 直接拷贝文件到相关目录即可,注意设置环境变量
#linux oracle11g ,将Oracle10g 三个包拷贝至目标环境
$ORACLE_HOME/rdbms/lib/ssbbded.o
$ORACLE_HOME/rdbms/lib/sbbdpt.o
$ORACLE_HOME/rdbms/mesg/bbedus.msb
#编译
cd $ORACLE_HOME/rdbms/lib
make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLE_HOME/bin/bbed
#登录
cat par.txt
blocksize=8192
listfile=filelist.txt
mode=edit
cat filelist.txt
1 /u01/app/oracle/oradata/ocp/system01.dbf
2 /u01/app/oracle/oradata/ocp/sysaux01.dbf
3 /u01/app/oracle/oradata/ocp/users01.dbf
bbed parfile=par.txt
blockedit
常用命令
#常用命令:set、 find、 dump、 modify 、sum apply、examine、map 、print、 verity
(1)set file 3 block 32
set dba 0x01000020
set offset 0 --0表示第一个字节开始
set block 1 --1表示第一个块开始
set count 8192 --默认是显示512字节
(2)find /x 05d67g --查指定的字符串在指定数据块中的具体位置
f --find的简写,表示继续从当前位置开始往下查询字符串05d67g
(3)dump --十六进制查看block
dump /v --查看十六进制内容的同时以文本方式“翻译”十六进制显示的内容,相当于对当前block执行strings命令
(4)modify /x d43 --修改指定block,指定offset的数据块块内记录的内容
(5)sum apply --计算修改后的数据块的checksum值,然后写入数据块的offset为16-17的位置
(6) map
map /v
p kcbh
p ktbbh
p kdbh
p kdbt
p kcvfh
p kcvfh.kcvfhrfn
p kcvfh.kcvfhckp
p *kdbr[0] --第一行记录
x /rnc -examine /read number char 用16进制翻译成我们能看懂的文件
通过ROWID获取block
--file_id
select DBMS_ROWID.ROWID_RELATIVE_FNO('AAAVREAAEAAAACXAAA') file_id from dual;
--block_id
select DBMS_ROWID.ROWID_BLOCK_NUMBER('AAAVREAAEAAAACXAAA') block_id from dual;
BBED修改坏块
ORA-00702: bootstrap verison
windows 数据文件头是从块2开始(块1是系统标识,bbed无权查看),linux是从块1开始(块0 是系统标识).例如:在数据库里识别的520,linux下 bbed 写 block 520,windows 需要写block 521
检查块位置
--查看坏块对象
select tablespace_name,segment_type,owner,segment_name
from dba_extents
where file_id=4 and 35 between block_id and block_id+blocks-1;
--查看对象占用了那些块
select distinct dbms_rowid.rowid_relative_fno(rowid),
dbms_rowid.rowid_block_number(rowid)
from bootstrap$;
bbed 修改:
#windows
1 D:\bbed_df\SYSTEM01_new.DBF
20 D:\bbed_df\SYSTEM01.DBF
set ORACLE_HOME=C:\app\Administrator\product\11.2.0\dbhome_1
bbed PASSWORD=blockedit mode=edit blocksize=8192 listfile=D:\bbed_win\bbed_1.txt
set count 128
verify
copy file 1 block 521 to file 20 block 521
copy file 1 block 522 to file 20 block 522
copy file 1 block 523 to file 20 block 523
copy file 1 block 524 to file 20 block 524
sum apply