plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序

 自己在虚机linux安装了o12版本后,计划通过wins主机通过plsql操作oracle,

结果没有顺利链接,plsql报错

 

plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序_第1张图片

排错步骤:

1.查看网络是否通畅

    打开cmd, ping 数据库IP

2. 查看端口是否通畅

   打开cmd,tnsping 数据库IP

    如果piing不通,可能是防火墙问题

3.检查防火墙状态

   #service iptables status

   如果开启,请关闭:#service iptables stop

4.查看监听服务是否开启

   $lsnrctl status

    如果未开启,执行命令启动监听: lsnrctl start

 

plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序_第2张图片

经过测试发现tnsping不通端口,检查linux防火墙为开启状态,关闭防火墙

plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序_第3张图片

在解决完防火墙后,本以为可以顺利登陆,结果发生了ora12541

plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序_第4张图片

理解是没有监听,在linux上查看监听开启的,linux上oracle也可以正常登陆,查看linux上tns.ora,发现ip=localhost,通过tnsping测试,果然是localhost没有对应到具体ip

plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序_第5张图片

错误就在这里了,按常理来说,localhost和159.156.1.207(本机IP)应该是同样可行的,但是oracle监听器解析时就是没能正确通过。
解决办法:先是尝试修改监听器配置文件:tnsnames.ora中的配置,但是均告失败
最后,打开Oracle 自己的工具:Net Configuration Assistant 将原来的监听器重新配置一遍,走流程不修改,直到完成。重新启动监听器,测试加ip来ping实例,正常通过
结果:已使用 EZCONNECT 适配器来解析别名
尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl1))(ADDRESS=(PROTOCOL=TCP)
(HOST=159.156.1.207)(PORT=1521)))
OK (0 毫秒)
结论:成功解决了数据库远程连接问题,问题原因我猜想是ORACLE的监听器没能正确的映射本机IP和loaclhost,导致报错,通过重新配置监听器,就将IP和localhost正确的映射了

oracle配置监听可参考:https://blog.csdn.net/hao134838/article/details/51475380

 

 

参考:https://blog.csdn.net/wojiuguowei/article/details/39965715

 

你可能感兴趣的:(plsql远程访问数据库 解决 ora12170TNS 连接超时,ora-12541:TNS:无监听程序)