ORA-600[2662]: ORA-01548 active rollback segment


客户机器断电,重启Oracle以后,出现2662的错误,

这个错误处理的很多了,一般是断电或者异常关闭后,current的redo文件损坏,然后使用 _allow_resetlogs_curruption强制打开以后,scn不一致,从而出现的错误。

这里通过adjust_scn的事件,增加scn一般就可以搞定。

马上运行

alter session set event ‘10015 trace name adjust_scn level 10′

然后
alter database open。
命令停止了一下,执行完毕,数据库打开。但是运行几个命令,一下子又提示end-communication,数据库又宕机叻。

打开alert文件。发现出现大量的错误

ORA-00600: internal error code, arguments: [4193], [354], [357], [], [], [], [], []

很不幸,undo段里有活动的事物,需要recovery的但是redo已经重做,倒是undo段需要恢复,所以出现上面的的问题。

此时,是不是有些朋友马上就想到,我重建undo就可以了呀。这样可以成功么,

应该是成功不了的,这个问题,处理过很多次了,因为undo segment里有活动的段,重建undo会出现错误。

不把这个活动的undo segement都搞定,你肯定是成功不了的。

不过出现了4XXX的错误,就是曙光,不过我们不要太操之过急,而让我们的恢复机会稍纵即逝了。

这里先查询一下我们的活动的rollback_segment.

select * from dba_rollback_segs

可以发现这里出现好几个need recovery的rollback_segment. 这就是我们需要解决的segment了。

马上在init.ora里埋上隐含参数_corrupted_rollback_segments参数
_corrupted_rollback_segments=(_SYSSMU5$,_SYSSMU6$,_SYSSMU7$)

然后从pfile启动数据库。数据库启动OK,虽然在alert里还是出现了几个错误,但是已经明显少多了。

趁胜追击马上create新的undo tablespace,成功。

然后drop tablespace undotbs1 including contents and datafiles;

成功,数据库不在出现错误了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

inthirties

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值