今天下午一個客戶來電告知一個運行中的輿情系統的內網部分,突然無法登錄。
我們立即讓其發來日志,發現是以下錯誤造成應用無法連接數據庫。
ORA-12541:TNS:no listener
查了很久原因,各方面都正常,嘗試了一些方法,數據庫也重起了2次,耗用了大約1小時,還是同樣錯誤。
最后查到網上提及listener.log 太大也可能引起監聽器異常,于是讓用戶檢查,發現其大小為4G,讓其重命名,然后重起監聽器,便可以正常登錄了。
總結如下:
應用出錯一般是連接Oracle出問題了,連接Oracle出問題很可能是監聽器出問題了。
需要在Windows服務管理器中重起監聽器。如果仍無法解決問題,請按以下步驟:
如果 listener 啟動(lsnrctl start)不成功,且有錯誤提示,可查看提示或以下原因:
1. 計算機名字或IP作了更改
2. Oracle_Home沒有設置或不正確
如果 listener 啟動(lsnrctl start)成功,且無錯誤信息,而Oracle_Home也正確且近期沒有修改過計算機名或IP,且系統連續運行了很長時間如幾個月,而突然出現這個問題,那很可能是
3. D:\app\Administrator\diag\tnslsnr\DBServer\listener\trace\listener.log太大 (這里路徑僅作示例用)
這個一般是Oracle運行很長時間后爆發,原因很隱蔽。
Oracle很強大,但出了問題需要較多時間或技巧來解決,這一點不是很好,它完全應開發一個針對常見問題的自動診斷程序來輔助用戶快速定位與解決。