今天下午一个客户来电告知一个运行中的舆情系统的内网部分,突然无法登录。
我们立即让其发来日志,发现是以下错误造成应用无法连接数据库。
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很强大,但出了问题需要较多时间或技巧来解决,这一点不是很好,它完全应开发一个针对常见问题的自动诊断程序来辅助用户快速定位与解决。