长江~ ~各位,喊吧,又是我,IQ 233的天才小璐,今天我再给大家展示一下我最近学的东西。
那是BBED
自我介绍:BBED是Block Browser/Editor的缩写,是Oracle的内部工具,不在外部发布文档和支持。
BBED随软件发布,但是我们需要进行简单的relink才能使用。
这个就很厉害了哟~可以修复Oracle坏块,有一次就是数据库打不开了,找了好多方法有幸接触到了BBED,修改了文件头,拯救了我的测试库哈哈哈
所以今天就给大家分享下怎么用这个东东
=============准备
Copy $ORA10g_HOME/rdbms/lib to$ORA11g_HOME/rdbms/lib
Copy $ORA10g_HOME/rdbms/lib to $ORA11g_HOME/rdbms/lib
Copy $ORA10g_HOME/rdbms/mesg to $ORA11g_HOME/rdbms/mesg
Copy $ORA10g_HOME/rdbms/mesg to $ORA11g_HOME/rdbms/mesg
Copy $ORA10g_HOME/rdbms/mesg to $ORA11g_HOME/rdbms/mesg
—-10g可以直接编译链接,11g需要将lib复制到以上指定目录
make -f $ORA10g_HOME/rdbms/lib BBED=$ORACLE_HOME/bin/bbed $ORACLE_HOME/bin/bbed
============配置
bbed parfile=/home/oracle
默认密码blockedit
构造bbed.par文件
[oracle@localhost ~]$ cat bbed.par
blocksize=8192
listfile=/home/oracle
mode=edit
构造文件
[oracle@localhost ~]$ cat
1 /u01/app/oracle/oradata/PROD/datafile 775946240
2 /u01/app/oracle/oradata/PROD/datafile 513802240
3 /u01/app/oracle/oradata/PROD/datafile 31457280
4 /u01/app/oracle/oradata/PROD/datafile 5242880
5 /home/oracle 5242880
使用set filelist 也需要,数据文件的信息单独在一个txt里
———使用以下sql生成
select file#||' '||name||' '||bytes from v$datafile;
———获取需要修改数据块的file#,block#
select
rowid,
dbm(rowid)rel_fno,
dbm(rowid)blockno,
dbm(rowid) rowno
from wzy.t1;
============使用
———————设置块位与偏移量
set dba 5,135 offset 0
set offset 8172
———————显示块信息类
map中的所有解都都可以进行p(print)
p kcbh
p kdbh
p kdbr 显示row directory
p *kdbr[0] 某行数据的偏移量
x /rc 进行一次examine
x /3rc 进行3次examine,用于显示数据,p到最后一行,进行N次(等于行数)的输
———————-修改数据
find /c chen
找到字段后,offset会偏移
modify /c 'zhen' dba 5,135 offset 8172
dump /v dba 1,115362 offset 8176count 128
———————恢复删除数据
find /c chen
找到字段后,offset会偏移
———————–修改校验
sum dba 5,135 检查checksum
sum dba 5,135 apply 应用required checksum
———————–tailcheck
tailcheck=bas_kcbh(后4位)+seq_kcbh+type_kcbh
要根据数据文件字节序,将tailcheck调整,小字节序要倒序,一个字节2个比特
BBED常用命令:
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
可以使用help来查看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 [ <SET parameter> | 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 ]
</Nuf>:
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] <target spec>=<source spec>
<target spec> : [ DBA | FILE | FILENAME | BLOCK | OFFSET | symbol | *symbol ]
<source spec> : [ value | <target spec options> ]
SUM [ DBA | FILE | FILENAME | BLOCK ] [ APPLY ]
PUSH [ DBA | FILE | FILENAME | BLOCK | OFFSET ]
POP [ALL]
REVERT [ DBA | FILE | FILENAME | BLOCK ]
UNDO
HELP [ <bbed command> | ALL ]
VERIFY [ DBA | FILE | FILENAME | BLOCK ]
CORRUPT [ DBA | FILE | FILENAME | BLOCK ]
善用BBED可以从很多棘手的问题中拯救我们的数据库,作为Oracle DBA需要了解这样一个工具的存在
1.文章《oracle如何导出txt文本》援引自互联网,为网友投稿收集整理,仅供学习和研究使用,内容仅代表作者本人观点,与本网站无关,侵删请点击页脚联系方式。
2.文章《oracle如何导出txt文本》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
相关推荐
- . 现代买票为什么带上携程保险
- . 潮阳怎么去广州南站
- . 湖南马拉河怎么样
- . 烧纸为什么到三岔路口
- . 百色为什么这么热
- . 神州租车怎么样
- . 芜湖方特哪个适合儿童
- . 护肤品保养液是什么类目
- . 早晚的护肤保养有哪些项目
- . 女孩护肤品怎么保养的最好