首页 > 数据库技术 > 详细

oracle--BBED (dump 深入实践三)

时间:2019-05-05 15:47:26      阅读:176      评论:0      收藏:0      [点我收藏+]

一,工具介绍

  bbed是Block Browser and Editor(块浏览编辑器)的缩写,它是Oracle数据库在安装时一起附带的工具。

       一般此工具倾向于仅作为Oracle内部使用,且Oracle公司并不公开此工具使用细节。

       由于bbed可以对Oracle数据库中的数据块进行内容修改和破坏,因此此工具功能强大同时伴有很高的使用风险。

二,工具安装

  模块和库地址:

https://files.cnblogs.com/files/kingle-study/BBED.zip

[oracle@oracle01 ~]$ cd BBED/
[oracle@oracle01 BBED]$ ls
bbedus.msb  bbedus.msg  BBED配置说明.txt  sbbdpt.o  ssbbded.o
[oracle@oracle01 BBED]$ l
-bash: l: command not found
[oracle@oracle01 BBED]$ ls
bbedus.msb  bbedus.msg  BBED配置说明.txt  sbbdpt.o  ssbbded.o
[oracle@oracle01 BBED]$ mv ssbbded.o sbbdpt.o $ORACLE_HOME/rdbms/lib/  ---文件拷贝到oracle 库下面
[oracle@oracle01 BBED]$ mv bbedus* $ORACLE_HOME/rdbms/mesg/            ----文件拷贝到oracle 模块下面
[oracle@oracle01 BBED]$ make -f $ORACLE_HOME/rdbms/lib/ins_rdbms.mk BBED=$ORACLEME/bin/bbed  ---执行编译安装

Linking BBED utility (bbed)
rm -f /u01/app/oracle/product/11.2.0/db_1/bin/bbed
gcc -o /u01/app/oracle/product/11.2.0/db_1/bin/bbed -m64 -z 
noexecstack -L/u01/app/oracle/prob/ -L/u01/app/oracle/product/11.2.0
/db_1/lib/ -L/u01/app/oracle/product/11.2.0/db_1/lib/stubst/11.2.0
/db_1/lib/s0main.o /u01/app/oracle/product/11.2.0/db_1/rdbms
/lib/ssbbded.o /u01/app/o/rdbms/lib/sbbdpt.o `cat /u01/app/oracle
/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsg -ldbtools11 -lclntsh
  `cat /u01/app/oracle/product/11.2.0/db_1/lib/ldflags`    -lncrypt11 
-ll11 -lnro11 `cat /u01/app/oracle/product/11.2.0/db_1/lib/ldflags`    
-lncrypt11 -lnsgr11 -lnz -lzt11 -lztkg11 -lclient11 -lnnetd11  -lvsn11 
-lcommon11 -lgeneric11 -lmm -lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11
 -lxml11 -lcore11 -lunls11 -lsnls11 -lnls11 -lcore11 -lnls11 `cat 
/.2.0/db_1/lib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 -ln11 -lnl11 
-lnro11 `cat /u01/app/oraib/ldflags`    -lncrypt11 -lnsgr11 -lnzjs11 
-ln11 -lnl11 -lclient11 -lnnetd11  -lvsn11 -lcomm11 -lnls11  -lcore11 
-lsnls11 -lnls11 -lcore11 -lsnls11 -lnls11 -lxml11 -lcore11 -lunls11 
-lsnls11 -lclient11 -lnnetd11  -lvsn11 -lcommon11 -lgeneric11 -lsnls11
 -lnls11  -lcore11 -lsnls111 -lnls11 -lxml11 -lcore11 -lunls11 -lsnls11
 -lnls11 -lcore11 -lnls11   `cat /u01/app/oraclesysliblist` -Wl,-rpath,/u01/app/oracle/product/11.2.0/db_1/lib -lm    
`cat /u01/app/oracle/prliblist` -ldl -lm -L/u01/app/oracle/product/11.2.0/db_1/lib [oracle@oracle01 BBED_10g_源码 x64]$ bbed Password: 默认密码 blockeidt

 

三,配置文件

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

FILE#||‘‘||NAME||‘‘||BYTES
--------------------------------------------------------------------------------
1 /u01/app/oracle/oradata/oracle01/system01.dbf 849346560
2 /u01/app/oracle/oradata/oracle01/sysaux01.dbf 1121976320
3 /u01/app/oracle/oradata/oracle01/undotbs01.dbf 304087040
4 /u01/app/oracle/oradata/oracle01/users01.dbf 5242880
5 /u01/app/oracle/oradata/oracle01/example01.dbf 363069440
6 /u01/app/oracle/oradata/oracle01/test01.dbf 10485760
7 /u01/app/oracle/oradata/oracle01/test101.dbf 10485760

把输出的内容写道bbed.txt文件下面
cat bbed.txt
[oracle@oracle01 BBED]$ cat bbed.txt
1 /u01/app/oracle/oradata/oracle01/system01.dbf 849346560
2 /u01/app/oracle/oradata/oracle01/sysaux01.dbf 1121976320
3 /u01/app/oracle/oradata/oracle01/undotbs01.dbf 304087040
4 /u01/app/oracle/oradata/oracle01/users01.dbf 5242880
5 /u01/app/oracle/oradata/oracle01/example01.dbf 363069440
6 /u01/app/oracle/oradata/oracle01/test01.dbf 10485760
7 /u01/app/oracle/oradata/oracle01/test101.dbf 10485760


bbed配置文件编写:
[oracle@oracle01 BBED]$ cat par.bbd
blocksize=8192
listfile=bbed.txt
mode=edit

 

四,启动与体验

[oracle@oracle01 BBED]$ bbed --help
LRM-00116: syntax error at - following -
PASSWORD - Required parameter
FILENAME - Database file name
BLOCKSIZE - Database block size  可编辑的数据文件标准块大小。
LISTFILE - List file name        列出可编辑的文件 
MODE - [browse/edit]  bbed可运行模式(browser或edit)
SPOOL - Spool to logfile [no/yes]    操作记录写出到bbed.log文件 (Y或N)
CMDFILE - BBED command file name     可执行命令的文件名清单
LOGFILE - BBED log file name          用户日志文件文件名。默认为log.bbd  
PARFILE - Parameter file name          列有命令项的参数文件
BIFILE - BBED before-image file name   undo文件文件名。默认为bifile.bbd
REVERT - Rollback changes from BIFILE [no/yes]
SILENT - Hide banner [no/yes]  不将输出打印到标准输出上(Y或N)  
HELP - Show all valid parameters [no/yes]
BBED-00105: LRM error 110 occurred during command line parsing
[oracle@oracle01 BBED]$ bbed password=blockedit parfile=par.bbd

BBED: Release 2.0.0.0.0 - Limited Production on Sun May 5 14:54:37 2019

Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

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

BBED> info
 File#  Name                                                        Size(blks)
 -----  ----                                                        ----------
     1  /u01/app/oracle/oradata/oracle01/system01.dbf                   103680
     2  /u01/app/oracle/oradata/oracle01/sysaux01.dbf                   136960
     3  /u01/app/oracle/oradata/oracle01/undotbs01.dbf                   37120
     4  /u01/app/oracle/oradata/oracle01/users01.dbf                       640
     5  /u01/app/oracle/oradata/oracle01/example01.dbf                   44320
     6  /u01/app/oracle/oradata/oracle01/test01.dbf                       1280
     7  /u01/app/oracle/oradata/oracle01/test101.dbf                      1280

 

BBED> set blocksize 8192  --块大小
BBED> set listfile bbed.txt --文件位置
BBED> set width 200  -- 设置屏幕显示宽度
BBED> set count 512 --设置dump命令显示的字节数,默认是512bytes
BBED> set mode browse -- 设置模式
or
BBED> set mode edit

 

BBED> map  --查看当前位置
 File: /u01/app/oracle/oradata/oracle01/system01.dbf (1)
 Block: 1                                     Dba:0x00400001
------------------------------------------------------------
 Data File Header

 struct kcvfh, 860 bytes                    @0

 ub4 tailchk                                @8188


BBED> set filename /u01/app/oracle/oradata/oracle01/test101.dbf
    FILENAME           /u01/app/oracle/oradata/oracle01/test101.dbf
--指定文件
BBED> map  --当前位置
 File: /u01/app/oracle/oradata/oracle01/test101.dbf (7)
 Block: 1                                     Dba:0x01c00001
------------------------------------------------------------
 Data File Header

 struct kcvfh, 860 bytes                    @0

 ub4 tailchk                                @8188

 

--查看全部信息
BBED>  show all
    FILE#              7
    BLOCK#             1
    OFFSET             0
    DBA                0x01c00001 (29360129 7,1)
    FILENAME           /u01/app/oracle/oradata/oracle01/test101.dbf
    BIFILE             bifile.bbd
    LISTFILE           bbed.txt
    BLOCKSIZE          8192
    MODE               Edit
    EDIT               Unrecoverable
    IBASE              Dec
    OBASE              Dec
    WIDTH              80
    COUNT              512
    LOGFILE            log.bbd
    SPOOL              No

 

BBED> help all

set 设定当前的环境
show 查看当前的环境参数,跟sqlplus的同名命令类似。
dump 列出指定block的内容
find 在指定的block中查找指定的字符串,结果是显示出字符串,及其偏移量--offset,偏移量就是在block中的字节数
modify 修改指定block的指定偏移量的值,可以在线修改。
copy 把一个block的内容copy到另一个block中
verify 检查当前环境是否有坏块
sum 计算block的checksum,modify之后block就被标识为坏块,current checksum与reqired checksum不一致,sum命令可以计算出新的checksum并应用到当前块。
undo 回滚当前的修改操作,如果手误做错了,undo一下就ok了,回到原来的状态。
revert 回滚所有之前的修改操作,意思就是 undo all

 

 >>操作: https://www.cnblogs.com/hrhguanli/p/4708273.html

  

 

 

五,操作一波
[Wǔ, cāozuò yī bō]
技术分享图片
Five, a wave of operation

oracle--BBED (dump 深入实践三)

原文:https://www.cnblogs.com/kingle-study/p/10813363.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!