Drop user 触发 ORA-00600 5463 和ORA-00600 ktecgeb-1错

Drop user 触发 ORA-00600 5463 和ORA-00600 ktecgeb-1错
一、问题现象
Drop user username cascade的时候,报ORA-00600 5463和ORA-00600 ktecgeb-1错误,接着instance crash
二、原因分析
原因是由于删除用户会先把用户下面的对象全部删除,Smon要清理临时对象的时候,需要去查找表空间的bitmap index,但是由于这个bitmap index损坏,导致了Smon无法清查临时对象,Smon重试了100次之后,实例被终止。处理思路如下:
1、设置event 10061阻止Smon对临时对象进行清理
2、查出所有需要清查的对象
3、使用dbms_space_admin.segment_corrupt将对象设置为corrupt
4、使用dbms_space_admin.segment_drop_corrupt将对象清除
5、使用dbms_space_admin.tablespace_rebuild_bitmaps重建表空间的bitmap index
6、重启数据库,将event 10061去掉
7、使用dbms_space_admin.tablespace_verify检查表空间是否正常
三、解决方法
由于用户下面的对象有28325个,其中有某些对象有问题,当drop user遇到这些对象的时候,语句将会失败,按照上面提供的思路,具体的操作步骤如下:
1、重启数据库,设置event = '10061 trace name context forever, level 10'
2、执行drop user username cascade操作,中间会中断多次,由于设置了event 10061,数据库crash,只要重新执行drop user操作就行,直到用户删除。
3、检查有问题的对象:
select owner,segment_name, segment_type ,tablespace_name from dba_segments where segment_type=’TEMPORARY’;
4、将对象标识为corrupt
如:exec dbms_space_admin.segment_corrupt('TABLESPACE_NAME',5,237068) ;
5、将对象删除
如:exec dbms_space_admin.segment_drop_corrupt(‘ TABLESPACE_NAME ‘,49,1183372) ;
6、重建表空间的bitmap index
exec dbms_space_admin.tablespace_rebuild_bitmaps('TABLESPACE_NAME');
7、重启数据库,将event 10061去除
8、较验表空间是否正常
exec dbms_space_admin.tablespace_verify ('TABLESPACE_NAME');

 

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

转载于:http://blog.itpub.net/22578826/viewspace-749302/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值