BBED(Block Browser and Editor)是Oracle数据库专用的数据块浏览与编辑工具,常用于底层数据块修复、数据恢复、数据库结构研究等场景。该工具并未随Oracle标准安装包发布,需通过独立文件编译部署,本文基于Linux 64位系统,完整记录从文件解压到编译生成BBED可执行文件的全流程,适用于Oracle运维人员快速完成工具部署。
一、前期准备:创建工作目录并上传工具包
首先以oracle用户登录服务器,创建专属工作目录,用于存放BBED相关压缩包及解压文件,避免与系统文件混淆。
bash
# 创建bbed专用目录,-p参数自动递归创建
[oracle@myoracle ~]$ mkdir -p bbed
# 进入目录
[oracle@myoracle ~]$ cd bbed/
# 查看当前路径,确认目录位置
[oracle@myoracle bbed]$ pwd
/home/oracle/bbed
目录创建完成后,将bbed_linux_64.zip工具压缩包上传至该目录,通过ll命令可查看文件属性,确认文件已正常上传。
bash
[oracle@myoracle bbed]$ ll
total 12
-rw-r--r-- 1 root root 8715 Apr 17 17:13 bbed_linux_64.zip
二、解压BBED工具包
使用unzip命令解压BBED压缩包,解压后会生成消息文件、目标文件等核心依赖文件,无需额外配置即可直接使用。
bash
[oracle@myoracle bbed]$ unzip bbed_linux_64.zip
Archive: bbed_linux_64.zip
inflating: bbedus.msb
inflating: bbedus.msg
inflating: readme.txt
inflating: sbbdpt.o
inflating: ssbbded.o
解压完成后,删除原始压缩包释放空间,再次查看目录,确认核心依赖文件齐全。
bash
[oracle@myoracle bbed]$ rm -rf bbed_linux_64.zip
[oracle@myoracle bbed]$ ll
total 36
-rw-r--r-- 1 oracle oinstall 8704 Feb 28 2013 bbedus.msb
-rw-r--r-- 1 oracle oinstall 10270 Feb 28 2013 bbedus.msg
-rw-r--r-- 1 oracle oinstall 223 Feb 28 2013 readme.txt
-rw-r--r-- 1 oracle oinstall 3976 Feb 28 2013 sbbdpt.o
-rw-r--r-- 1 oracle oinstall 3306 Feb 28 2013 ssbbded.o
三、拷贝依赖文件至Oracle对应目录
BBED的编译需要依赖Oracle安装目录下的库文件和消息文件,需将解压后的.o目标文件、.msg/.msb消息文件,分别拷贝至$ORACLE_HOME/rdbms/lib和$ORACLE_HOME/rdbms/mesg目录。
bash
# 拷贝目标文件至lib目录
[oracle@myoracle bbed]$ cp ssbbded.o $ORACLE_HOME/rdbms/lib
[oracle@myoracle bbed]$ cp sbbdpt.o $ORACLE_HOME/rdbms/lib
# 拷贝消息文件至mesg目录
[oracle@myoracle bbed]$ cp bbedus.msg $ORACLE_HOME/rdbms/mesg
[oracle@myoracle bbed]$ cp bbedus.msb $ORACLE_HOME/rdbms/mesg
四、编译生成BBED可执行文件
进入Oracle库文件目录,通过make命令调用ins_rdbms.mk编译脚本,生成BBED可执行文件,这是部署的核心步骤。
bash
# 进入Oracle lib目录
[oracle@myoracle bbed]$ cd $ORACLE_HOME/rdbms/lib
# 编译生成bbed工具
[oracle@myoracle lib]$ make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed
编译完成后,$ORACLE_HOME/rdbms/lib目录下会生成bbed可执行文件,直接执行bbed命令即可启动工具,进行Oracle数据块的浏览与编辑操作。
Oracle BBED 工具完整使用指南
BBED 启动命令
1. 直接启动(需密码验证)
bash
$ bbed
默认密码:blockedit

2. 免交互直接登录
bash
$ bbed blockedit
3. 带参数启动(推荐)
bash
$ bbed parfile=bbed.par
4. 常用启动参数
parfile:指定参数文件logfile:指定操作日志文件cmdfile:执行命令脚本mode=edit:编辑模式mode=browse:只读浏览模式
示例:
bash
$ bbed parfile=bbed.par logfile=bbed.log mode=browse
bbed.par 标准参数文件模板
ini
blocksize=8192
listfile=filelist.txt
mode=browse
filelist.txt 格式:
1 /u01/oradata/orcl/system01.dbf
2 /u01/oradata/orcl/sysaux01.dbf
BBED 基础操作语法
1. 查看帮助
help
h
2. 查看当前配置
show
show all
3. 定位数据块
set dba <file#>.<block#>
set file <file_id>
set block <block_id>
set offset <字节偏移>
示例:
set dba 1.100
4. 显示块内容
dump
p /v
p /x
dump:十六进制+ASCII 显示p /v:结构化显示p /x:纯十六进制
5. 搜索内容
find /x 十六进制串
find /c 字符串
6. 修改数据(编辑模式)
modify /x 十六进制串
modify /c 字符串
7. 保存修改
apply
8. 退出
exit
quit
常用操作示例
1. 查看文件列表
show files
2. 查看数据块头部信息
set dba 1.1
p kcbh
3. 查看表数据块
set dba 5.1234
p ktbbh
p kdbr
4. 查看行数据
p *
5. 搜索某个值
find /c 'SCOTT'
6. 修改字节并保存
modify /x 00
apply
安全与风险提醒
- BBED 是 Oracle 底层危险工具,可直接篡改数据块
- 生产库严禁无备份使用
- 建议始终先使用
mode=browse只读查看 - 操作前必须:
- 全库备份
- 停机或置为只读
- 记录修改前后镜像
五、注意事项
- 操作全程需使用
oracle用户,避免因权限不足导致文件拷贝、编译失败; - BBED属于Oracle底层高危工具,严禁在生产库无备份情况下随意修改数据块,仅建议用于测试环境、数据恢复场景;
- 编译前需确认
ORACLE_HOME环境变量已正确配置,否则无法定位Oracle安装目录; - 若编译报错,优先检查依赖文件是否完整拷贝、目录权限是否正常。
工具链接
bash
通过网盘分享的文件:BBED
链接: https://pan.baidu.com/s/1inleUoyxRUY8uwpXSS9BHg
提取码: yfu2