rman备份中出现ora-19556的解决办法

刚发现这个问题时候,粗粗的查了一下,以为是空间不足原因,把之前的备份删除了,为后面的悲惨埋下了伏笔。

通过在 oracle用户下面执行:

dbv file=/opt/oracle/oradata/ORCL/sysaux01.dbf,可以看到,file 3, block 308634

是文件3,数据块308634有坏掉。不用如命令,其实在alter日志里也可以看到。

按理说,有个命令 blockrecover可以恢复坏掉,但之前说了,把我之前的备份删除了,执行此命令则提示:no back,没办法。找林工吧。

 

林工说,执行:

SELECT tablespace_name, segment_type, owner, segment_name
                FROM dba_extents
                WHERE file_id = 3
                and 308634 between block_id AND block_id + blocks - 1;

结果是显示tablespace_name owner segment_type segment_name sysaux index sys i_wri$optstat_h_st的一些东西。

 

再执行:select count(*) from WRI$_OPTSTAT_HISTGRM_HISTORY;

结果是:2690623

 

再执行:alter index sys.i_wri$_optstat_h_st rebuild;

结果是:index altered.

 

再检查下:

dbv file=/opt/oracle/oradata/ORCL/sysaux01.dbf,发现还是有坏块提示,file 3, block 308634

 

再用

SELECT tablespace_name, segment_type, owner, segment_name
                FROM dba_extents
                WHERE file_id = 3
                and 308634 between block_id AND block_id + blocks - 1;

结果是: no rows selected.

再用rman备份,发现可以了。

 

林工说,再用  run {blockrecover datafile 3 block 308634;}

修复下。果然可以修改,提示:finished recover

再用dbv检查时,已经没有坏块了。搞定!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值