plsql远程访问数据库 解决ora-12541:TNS:无监听程序

排查问题:在服务端机器上
1.首先检查监听程序是否能正常启动 ,开始,运行 cmd--->lsnrctl start,检查监听是否是在正常运行,如果正常运行,会提示:TNS-01106: 使用名称LISTENER的监听程序已经启动。如果没有运行,用上面的命令启动监听程序。
2.还在命令提示行里用  tnsping 服务名 ,来检查tnsnames.ora服务配置是否正确。正确的提示例如:
  已使用 TNSNAMES 适配器来解析别名
  Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)
  (HOST = 192.168.0.6)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = 服务名)))
  OK (50 毫秒)
命令1 : tnsping orcl (ping 本地的orcl,)
结果:已使用 TNSNAMES 适配器来解析别名
  尝试连接 (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 152
  1)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl1)))
  TNS-12541: TNS: 无监听程序
  其中:(HOST = localhost) 监听器是这么解析的
命令2 :tnsping 192.168.1.26/orcl1(加上本地ip来ping本地实例)
  结果:已使用 EZCONNECT 适配器来解析别名
  尝试连接 (DESCRIPTION=(CONNECT_DATA=(SERVICE_NAME=orcl1))(ADDRESS=(PROTOCOL=TCP)
  (HOST=192.168.1.26)(PORT=1521)))
  TNS-12541: TNS: 无监听程序
  其中:(HOST=159.156.1.207)监听器是这么解析的
错误就在这里了,按常理来说,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的Net Configuration Assistant将原来的监听器的重新配置一边,走流程不修改,重启监听,测试均通过!

原文地址http://www.cnblogs.com/wq920/p/3298447.html

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值