ITPub博客

首页 > 数据库 > Oracle > bbed来模拟坏块及修复

bbed来模拟坏块及修复

Oracle 作者:peng163fj 时间:2015-04-13 15:43:28 0 删除 编辑

一: 创建测试用的表
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/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: linux 权限 chown
请登录后发表评论 登录
全部评论

注册时间:2013-11-20

  • 博文量
    155
  • 访问量
    440175