ORACLE10G 監聽僵死問題的解決
創作品,允許轉載,轉載時請務必以超連結形式標明文章 、作者資訊和本宣告。否則將追究法律責任。http://miracle.blog.51cto.com/255044/118830
早上幾個同事都風風火火的要求我趕快解決一個資料庫無法連線的問題。
當時一個同事甚至告訴我那個資料庫“掛了”,有沒有搞錯,資料庫那麼容易就DOWN了嗎?
趕快上去看了一眼,例項執行正常,但是監聽好像有些問題。很奇怪,用lsnrctl status命令後,沒有返回任何資訊同樣也不退出,好像僵死一樣。先解決問題再說吧,KILL掉一個監聽程式後,再次啟動監聽,但是提示“監聽已經啟動”,怪。但是問題卻得到了解決,可以正常連線了。
......
還要看看問題所在呀,檢查監聽日誌,沒有什麼特別的資訊,但有兩點,一個是在某個時段內就是沒有任何連線到資料庫的會話(沒有任何日誌資訊,這線上上資料庫中是不可能的),一個是有一條WARNING資訊:
WARNING: Subscription for node down event still pending
透過查閱發現,原來這是個監聽的BUG!
產生原因:
如果沒有升級到10.2.0.3以後的版本也沒有關係,有兩個解決辦法:
有時很多人都是到ORACLE網站下載一個新的產品,然後就安裝使用(如果只是測試或者學習真的沒有問題),覺得也很好,或者購買服務到期後就不願意繼續購買ORACLE的服務,其實對於一個商用資料庫的執行而言,後續的服務是非常重要的。
BTW:
我在處理問題的時候當時粗心了一下,因該是可以檢查到又兩個監聽程式存在的。只是當時我運氣比較好直接kill掉了那個有問題的監聽程式,所以才會出現我殺掉監聽程式後,再重新啟動卻提示監聽已啟動了。-:)
當時一個同事甚至告訴我那個資料庫“掛了”,有沒有搞錯,資料庫那麼容易就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.
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)
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_
where
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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- kafka監聽出現的問題,解決和剖析Kafka
- Android多程式之Binder解綁監聽的問題Android
- Oracle dblink監聽問題Oracle
- Oracle 監聽投毒COST解決Oracle
- 解決 Laravel 專案中使用 NPM 監聽程式碼改動導致 IDE 卡死的問題LaravelNPMIDE
- 一篇文章能否解決你事件監聽的許多疑問事件
- [20180417]監聽與時區問題.txt
- 解決MMM啟動監控報錯的問題
- 上交所市場行情mktdt00.txt資料檔案監聽問題及解決方案
- Puppet監控速查手冊:問題/原因→解決方案
- 解決 Unexpectedlexicaldeclarationincaseblock的問題BloC
- [20190306]靜態監聽配置sid大小寫問題.txt
- 解決Android7.0以上 notification系統自動摺疊點選點選事件無法監聽問題Android事件
- 【解決uniapp】audio seek失效,seeked監聽不到 createInnerAudioContext建立APPContext
- Spring帶泛型的ApplicationEvent無法監聽問題分析(轉載)Spring泛型APP
- 測試問題思考,有些問題我自己有答案,但是我想聽聽大家的見解,謝謝!
- WPF 已知問題 監聽 WMI 事件導致觸控失效事件
- 解決 github 訪問不了的問題Github
- 解決github訪問慢的問題Github
- display:flex解決的問題Flex
- 遇到問題的解決方法
- bpmnjs-planel專案畫流程圖時任務監聽事件無法輸入欄位注入問題解決JS流程圖事件
- 解決JS跨域訪問的問題JS跨域
- 監聽 watch props物件屬性監聽 或深度監聽物件
- but no encoding declared;問題的解決方法Encoding
- 01揹包問題的解決
- 黑蘋果的問題解決蘋果
- 提升解決問題能力的思考
- JAR衝突問題的解決JAR
- 提問題比解決問題更重要
- 解決跨域問題跨域
- SERVICE問題解決方法
- 解決mapper重名問題APP
- qeephp 解決跨越問題PHP
- 解決高度塌陷問題
- 解決訪問Github與clone很慢的問題Github
- 解決訪問 GitHub 與 clone 很慢的問題Github
- 如何解決sms-activate的解決問題
- 怎樣成為解決問題的高手?——關於問題解決的關鍵4步驟