ORA-12541: TNS: 无监听程序

客户端所在机器IP:192.168.6.97(Oracle 10g客户端) 主机A

服务器端所在机器IP:192.168.6.99(Oracle 11g R2) 主机B

首先检查主机B的TNSListener服务是否已启动,如果已启动,然后按照下面的顺序判断问题原因

1.尝试检查网络原因,从主机A ping 主机B

ping 192.168.6.99,如下图,两台机器间网络是通的

ORA-12541: TNS: 无监听程序

2.使用tnsping命令检查oracle客户端与服务器端的tns连接是否通

tnsping 192.168.6.99:1521/demo

结果如下图:

ORA-12541: TNS: 无监听程序
结果显示是主机A到主机B的oracle tns还是不通的

3.在主机B上通过lsnrctl status命令,检查主机B的Oracle监听是否工作正常

下图是连接正常的截图,如果途中红圈标注出显示命令执行成功,则说明主机B的TNS服务正常

ORA-12541: TNS: 无监听程序
显示主机B的监听正常

如上判断了问题的情况,主机B的监听服务器已启动-->主机A到主机B的网络通讯正常-->主机A到主机B的Oralce tns通讯不正常-->主机B的监听工作正常

接下来就是如何解决了:

根据遇到监听问题的经验,解决本案例中出现的情况,有一个妙招,呵呵

重新创建主机B的TNSlistener(删除再创建)

我是这么解决的!