首页 > 数据库 > Oracle > bbed来模拟坏块及修复
一: 创建测试用的表
SQL> create table jiujian(des varchar(30)) tablespace pos;
Table created.
SQL> insert into jiujian values('zhangxu love oracle');
1 row created.
SQL> select * from jiujian;
DES
------------------------------
zhangxu love oracle
2 查询表jiujian所在的块
语句:select rowid,
dbms_rowid.rowid_relative_fno(rowid) rel_fno,
dbms_rowid.rowid_block_number(rowid) blockno,
dbms_rowid.rowid_row_number(rowid) rowno
from jiujian;
SQL> select rowid,
2 dbms_rowid.rowid_relative_fno(rowid) rel_fno,
3 dbms_rowid.rowid_block_number(rowid) blockno,
4 dbms_rowid.rowid_row_number(rowid) rowno
5 from jiujian;
ROWID REL_FNO BLOCKNO ROWNO
------------------ ---------- ---------- ----------
AAACwhAAJAAAAAQAAA 9 16 0
字段BLOCKNO 16即为表jiujian所在的块
二:进行rman备份
三:创建bbed的配置文件
cd $oracle_home/rdbms/lib
vi p.par
i
blocksize=8192
listfile=file.txt
mode=edit
:wq!
vi file.txt
< select file#||' '||name||' '||bytes from v$datafile;>
黏贴于此
:wq!
四.打开bbed
bbed parfile=p.par
登陆密码blockedit

现在定位到的是system01.dbf
查看刚设置的序列号
现在定位到了pos.dbf,查找zhangxu字符串,发现偏移量8169处
set offset 8169 更改当前偏移量为 8169
BBED> set offset 8169
OFFSET 8169
dump /v 从指定偏移量处开始显示数据块内容
BBED> dump /v
File: /u01/oradata/omrep/pos.dbf (9)
Block: 16 Offsets: 8169 to 8191 Dba:0x02400010
-------------------------------------------------------
7a68616e 67787520 6c6f7665 206f7261 l zhangxu love ora
636c6501 06f0a3 l cle..??
<16 bytes per line>
modify /c jiujian 从偏移量8169处开始用字符jiujian 进行替换。
BBED> modify /c jiujian
File: /u01/oradata/omrep/pos.dbf (9)
Block: 16 Offsets: 8169 to 8191 Dba:0x02400010
------------------------------------------------------------------------
6a69756a 69616e20 6c6f7665 206f7261 636c6501 06f0a3
<32 bytes per line>
dump /v 显示是否替换成功
BBED> dump /v
File: /u01/oradata/omrep/pos.dbf (9)
Block: 16 Offsets: 8169 to 8191 Dba:0x02400010
-------------------------------------------------------
6a69756a 69616e20 6c6f7665 206f7261 l jiujian love ora
636c6501 06f0a3 l cle..??
<16 bytes per line>
offline再online后,显示文件损坏,所以做过重大改动前,要注意备份现有数据
五:使用rman恢复
1.使用blockrecover方式
blockrecover datafile 9 block 16;
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/21302630/viewspace-1571818/ ,如需转载,请注明出处,否则将追究法律责任。