Oracle   bbed 使用

1:安装: 11g R2 版的


cd $ORACLE_HOME/

find . -name ins_rdbms.mk


cd rdbms/lib

make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed

在11g会报错。需要在网上下载三个文件。或者你有10g 的库直接把10g的文件拷过来:

附上下载地址: http://download.csdn.net/detail/jycjyc/4578006

将下载到的bbedus.msb拷贝到上一级目录mesg中   cp lib/bbedus.msb mesg/

之后再执行   make -f ins_rdbms.mk $ORACLE_HOME/rdbms/lib/bbed

$./bbed 

进去后bbed 密码是:blockedit


2:配置查看:

然后就是show  all 看一下要做哪些预配:

在另一个窗口中找出要操作的文件select * from v$datafile;


那这里我们可以插入一条记录,看看文件究竟是被真的插入到那:用到dbms_rowid 这个包

select dbms_rowid.ROWID_RELATIVE_FNO(rowid), dbms_rowid.ROWID_BLOCK_NUMBER(rowid),id from t4;

查出来真正插入的数据在 2号文件121号块接下来设置filename ,file ,block ,blocksize ,mode

set  FILENAME '/u01/app/oracle/test/data/test_01.dbf'

set file  2

set block 121

set  blocksize  8192

set mode edit                    //edit 是可以修改, browse 模式不允许进行修改

bbed 中的查找: find

bbed> set block 47   //读47号块

bbed>dump               // 显示出dump

> show all;

可以看下偏移量。OFFSET

以字符串查找/c 

>find /c BBBBBBB 

find 就是查找并重置偏移量。

按十六进制查找:

> find /x 42424242424242

有时报invalid number   那是因为  32 位 的错。

修改命令: modify  /c 

bbed > modify /c EEEEEEE  

此时再来查看原先的数据:

select * from t1;

如果现在报block corrupted:

那这是由于校验和的问题:可以设置把校验和关掉:

show parameter check;

1)

更改db_block_checksum = false;

alter system set db_block_checksum=false;

再刷新下buffer_cache ;

alter system  flush buffer_cache;

select * from t1;

2) 还有一种更好的办法:

直接更改校验和

bbed> sum apply

然后回去在刷新次buffer_cache

alter system flush buffer_cache



你可能感兴趣的:(oracle,bbed)