磁盘块坏处理ORACLE跳过坏块解决方法

************************************************************************************    
    根据错误提示,数据文件user09.dbf中存在坏块,建议通过下面的步骤1进行确认,
步骤2直接跳过这个坏块。跳过坏块后,这个坏块中存放的数据将会丢失,请确认这部
分数据可以丢失,然后进行步骤2。

************************************************************************************
1.  收集出错表的信息,确认是哪张表。

  查询坏块的语句

  set tablespace_name format a20
  set owner format a10
  set segment_name format a20

  SELECT tablespace_name, segment_type, owner, segment_name
          FROM dba_extents
         WHERE file_id = 30
           and 289883 between block_id AND block_id + blocks - 1;
查询结果:

 

 

将会得到如下类似结果,例:
SQL> l
  1    SELECT tablespace_name, segment_type, owner, segment_name
  2            FROM dba_extents
  3           WHERE file_id = 23
  4*            and 154823 between block_id AND block_id + blocks - 1
SQL> /

TABLESPACE_NAME SEGMENT_TYPE    OWNER           SEGMENT_NAME
--------------- --------------- --------------- ---------------
TSP_INPBILL     TABLE           INPBILL         INP_BILL_DETAIL

 

2.跳过坏块的语句(跳过这个坏块后,这个坏块上原来存放的数据将不可找回)
      execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('INPBILL','INP_BILL_DETAIL');   
说明:execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('所有者OWNER','段名SEGMENT_NAME'); 


SQL> conn / as sysdba;
Connected.
SQL> execute DBMS_REPAIR.SKIP_CORRUPT_BLOCKS('ERP','GL_A_CURRENT_ACCOUNTS');

PL/SQL procedure successfully completed.

 

3.执行相同的操作,验证是否还会报错。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值