这几天遇到两次ORA-00600【4194】,鉴于发生的那么频繁,还是简单的将处理的过程记录下来,以备以后参考。
工程人员说,oracle数据库启动以后,不一会就会自动关闭(他是通过系统的进程来判断的)。我马上想到只是instance启动了,可是数据库并没有真正的open 。还是用sqlplus来检查一下,果不其然,在open的时候报ORA-00600,系统发生致命的错误。查看alert文件:
Sat Jan 21 13:55:21 2006 Errors in file /opt/oracle/admin/conner /bdump/conner_smon_17113.trc: ORA-00600: internal error code, arguments: [4194], [43], [46], [], [], [], [], [] Sat Jan 21 13:55:21 2006 Errors in file /opt/oracle/admin/conner /udump/conner_ora_17121.trc: ORA-00600: internal error code, arguments: [4194], [45], [44], [], [], [], [], [] |
判断是undo段损坏,处理方式如下:
1.首先要确定系统的undo有哪些,名字是什么。
网上都说在alert文件中可以找到类似如下的信息
Sat Jan 21 13:55:21 2006 Undo Segment 11 Onlined Undo Segment 12 Onlined Undo Segment 13 Onlined Successfully onlined Undo Tablespace 16. |
可是我没有找到,但是我知道我们的undo表空间的设置是默认的,所以是有10个undo段,分别如'_SYSSMU1$','_SYSSMU2$','_SYSSMU3$',...'_SYSSMU10' .
此时修改init.ora参数文件,加入如下隐含参数 _corrupted_rollback_segments='_SYSSMU1$','_SYSSMU2$','_SYSSMU3$','_SYSSMU4$','_SYSSMU5$','_SYSSMU6$','_SYSSMU7$','_SYSSMU8$','_SYSSMU9$','_SYSSMU10'
用init.ora参数文件启动数据库,随后新建一个undo 表空间,指定系统默认的undo表空间为新建的undo表空间,然后删除损坏的undo表空间。问题解决。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8858072/viewspace-423067/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/8858072/viewspace-423067/