ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Drop user 触发 ORA-00600 5463 和ORA-00600 ktecgeb-1错

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

原创 Linux操作系统 作者:beatony 时间:2012-11-15 17:40:32 0 删除 编辑
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博客 ” ,链接:https://blog.itpub.net/22578826/viewspace-749302/ ,如需转载,请注明出处,否则将追究法律责任。

下一篇: 全报表和Optimizer
请登录后发表评论 登录
全部评论

注册时间:2010-05-18

  • 博文量
    192
  • 访问量
    495779