回滚段完蛋了的处理

背景: 用户修改一些配置,shutdown immediate,但是系统很久也没有关闭。等不及的用户 shutdown abort 数据库,然后startup。重新启动之后的数据库,在alert.log中不段出现类似的错误信息:
SMON: about to recover undo segment 8
SMON: mark undo segment 8 as needs recovery
或者出现:
smon: undo segment 46 is avaliable
smon: need to recover undo segment 46
这些错误信息,由SMON 进程唤醒,所以一般是5分钟出现一次。
检查 dba_rollback_segs 发现这些回滚段的状态为:NEEDS RECOVERY 或者 PARTLY AVAILABLE。 A rollback segment in the PARTLY AVAILABLE state contains data for an in-doubt or recovered distributed transaction, or for yet to be recovered transactions.

原因: 用户关闭系统的时候,还存在大量的活动事务,在shutdown abort 后,重新启动的时候,系统要回滚这些事务,并且将这些回滚段置为不可用

解决:
1.
创建一个新的undo tablespace,并将系统切换到该UNDO tablespace 上。对系统进行耐心的等待,不断查看
dba_rollback_segs。等所有的回滚段的状态为online 或者 offline 后,在drop 该UNDO tablespace,操作步骤如下:
create undo tablespace Undo2 datafile '' size 500M segment space management AUTO;
alter syste set undo_tablespace=Undo2;
drop tablespace Undo1;
在alert.log 中将会出现:
SMON: mark undo segment 8 as available,
SMON: Parallel transaction recovery tried
2. sql> alter session set "_smu_debug_mode"=4; 将回滚段设置为手工的debug模式
sql> alter rollback segment "_SYSSMU8$" online;
3.
在参数文件中设置:._corrupted_rollback_segments='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$' 先打开数据
库,然后进行步骤1中的全部操作
4. 添加 _offline_rollback_segments ='_SYSSMU11$','_SYSSMU12$','_SYSSMU13$' ,在重新启动数据库,删除有问题
的回滚段
ref: http://carson.yculblog.com/post.1391582.html
[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7916042/viewspace-915069/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7916042/viewspace-915069/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值