今天在关闭(shutdown immediate)一9i数据库的时候,居然碰到了Ora-600错误,后面的错误信息还看不到,都是[%s]类似的,真实值根本没填进去,咋办?
冷静是碰到问题的第一步,我冷静的思考,这是咋回事儿呢?思考了一下没思考出来,那就先动手吧,不过动手仅限于文件级别的open & look,绝对不去update任何文件。登录到服务器上,进入admin/[sid]/udump下,嚯,alert都100多M了,刚生成的trc文件也都四五十M了(smon的)。tail+head看看,哦,原来Ora-600是因为一个“ORA-00904: "DROP_SEGMENTS": invalid identifier”的错误导致的。里面也也看到了600的第一个参数:opiodr: call 2,不过按此去搜并未得到什么有用的结果。
上网搜了下这个错误,说是9i升级时,patch没应用利索导致的,回想起之前自己本本上的9201升级到9208也碰到了类似的问题,不禁在想,Oracle你升级怎么搞得?!NND,坑爹呢!
库又关不掉,进程又不敢杀,咋整?赶紧咨询了一下恩墨科技首席客服专家,有Oracle大百科全书之称的杨廷琨同学,简要说明完问题原因及网上搜索的结果,然后询问老杨是否可以执行shutdown abort,是否可以杀Oracle进程。老杨果断给予了答案:“shutdown abort”。“如果abort不掉呢?”“abort还不能关闭是极其罕见的情况,如果真出现了,你就杀进程吧”
abort后,果然成功了关闭了Oracle,然后按照postInstallation的指引,完成了catpatch.sql的安装,问题得以解决。关于此,可参阅春暖花开同学的blog文章,注意最后的操作是2选1的,不必要两个都加。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29867/viewspace-702870/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29867/viewspace-702870/