ORACLE10G 監聽僵死問題的解決

perfychi發表於2013-01-23
創作品,允許轉載,轉載時請務必以超連結形式標明文章 、作者資訊和本宣告。否則將追究法律責任。http://miracle.blog.51cto.com/255044/118830
        早上幾個同事都風風火火的要求我趕快解決一個資料庫無法連線的問題。
        當時一個同事甚至告訴我那個資料庫“掛了”,有沒有搞錯,資料庫那麼容易就DOWN了嗎?
        趕快上去看了一眼,例項執行正常,但是監聽好像有些問題。很奇怪,用lsnrctl status命令後,沒有返回任何資訊同樣也不退出,好像僵死一樣。先解決問題再說吧,KILL掉一個監聽程式後,再次啟動監聽,但是提示“監聽已經啟動”,怪。但是問題卻得到了解決,可以正常連線了。
        ......
        還要看看問題所在呀,檢查監聽日誌,沒有什麼特別的資訊,但有兩點,一個是在某個時段內就是沒有任何連線到資料庫的會話(沒有任何日誌資訊,這線上上資料庫中是不可能的),一個是有一條WARNING資訊:
        WARNING: Subscription for node down event still pending
         透過查閱發現,原來這是個監聽的BUG!
         產生原因:
       
Intermittently, an additional listener process is created by Oracle causing the LISTENER to refuse connections to the database.
unpublished bug number 4518443 in 10.2.0.2 (and no doubt previous versions), fixed in 10.2.0.3.
        
       如果沒有升級到10.2.0.3以後的版本也沒有關係,有兩個解決辦法:
 
1) Rename the Oracle10g ons.config file so the listener does not find or use it.

                cd $ORACLE_HOME/opmn/conf
                mv ons.config ons.config.orig
                (then restart the listener)

        2) Explicitly disable the 10g TNS Listener from subscribing to the ONS.

                Edit the active 10g listener.ora file and add the parameter below:

                SUBSCRIBE_FOR_NODE_DOWN_EVENT_=OFF

                where would be replaced with the actual listener name configured in the listener.ora file.

                For example, if the listener name is LISTENER (default), the parameter would be:

                SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF

                (then restart the listener)

        有時很多人都是到ORACLE網站下載一個新的產品,然後就安裝使用(如果只是測試或者學習真的沒有問題),覺得也很好,或者購買服務到期後就不願意繼續購買ORACLE的服務,其實對於一個商用資料庫的執行而言,後續的服務是非常重要的。
        BTW:
        我在處理問題的時候當時粗心了一下,因該是可以檢查到又兩個監聽程式存在的。只是當時我運氣比較好直接kill掉了那個有問題的監聽程式,所以才會出現我殺掉監聽程式後,再重新啟動卻提示監聽已啟動了。-:)

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/27042095/viewspace-753129/,如需轉載,請註明出處,否則將追究法律責任。

相關文章