解決了一例Shutdown時碰到Ora-600錯誤的問題

lastwinner發表於2011-07-22

今天在關閉(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/,如需轉載,請註明出處,否則將追究法律責任。

相關文章