关于TNS-12543: TNS:destination host unreachable的案例-程序员宅基地

技术标签: java  php  数据库  

今天在给几个库做映射的时候,用tnsping,有一个库老是有问题,在客户端配置
tnsping NFTTEST
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 172.19.198.51)(PORT = 1563))) (CONNECT_DATA = (SERVICE_NAME = NFTTEST)))
TNS-12543: TNS:destination host unreachable

但是能够Ping通
> ping 172.19.198.51
PING 172.19.198.51 (172.19.198.51) 56(84) bytes of data.
64 bytes from 172.19.198.51: icmp_seq=1 ttl=64 time=0.582 ms
64 bytes from 172.19.198.51: icmp_seq=2 ttl=64 time=0.429 ms
..
--- 172.19.198.51 ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1000ms
...

尝试直连接,还是报了同样的错误。
>  sqlplus n1/[email protected]:1563/NFTTEST

SQL*Plus: Release 11.2.0.2.0 Production on Tue Apr 8 13:54:23 2014

Copyright (c) 1982, 2010, Oracle.  All rights reserved.

ERROR:
ORA-12543: TNS:destination host unreachable



初步怀疑是tnsnames.ora里面的配置信息有问题,可能有格式化之类的问题。
然后重新coyp,改成主机名。把NFTTEST编辑成一行,怎么试都是不行。

然后我在服务器端尝试,竟然一点问题都没有,正常的登录,listener也是正常的。

我比较了服务端,客户端的 /etc/hosts里面的Ip配置,都是一样的。

在服务端重启了listener,再次尝试,没有问题,但是在客户端还是有问题。
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=172.19.198.51)(PORT=1563)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1563)))
Services Summary...
Service "NFTTEST" has 1 instance(s).
  Instance "NFTTEST", status UNKNOWN, has 1 handler(s) for this service...
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

> tnsping NFTTEST

TNS Ping Utility for Linux: Version 11.2.0.2.0 - Production on 08-APR-2014 10:27:45

Copyright (c) 1997, 2010, Oracle.  All rights reserved.

Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = dbusgsnft4)(PORT = 1563))) (CONNECT_DATA = (SERVICE_NAME = NFTTEST)))
OK (0 msec)
然后在服务端用sqlplus连接都是没有问题的。客户端还是不行。

为了查看更详细的信息,在服务器端尝试一下strace.
munmap(0x2b57e9832000, 4096)            = 0
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
fcntl(4, F_SETFL, O_RDONLY|O_NONBLOCK)  = 0
connect(4, {sa_family=AF_INET, sin_port=htons(1563), sin_addr=inet_addr("172.19.198.51")}, 16) = -1 E INPROGRESS (Operation now in progress)
times({tms_utime=0, tms_stime=1, tms_cutime=0, tms_cstime=0}) = 2174636906
mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b57e9a62000
poll([{fd=4, events=POLLOUT}], 1, 60000) = 1 ([{fd=4, revents=POLLOUT}])
getsockopt(4, SOL_SOCKET, SO_ERROR, [519270883345301504], [4]) = 0
fcntl(4, F_GETFL)                       = 0x802 (flags O_RDWR|O_NONBLOCK)
fcntl(4, F_SETFL, O_RDWR)               = 0
getsockname(4, {sa_family=AF_INET, sin_port=htons(31292), sin_addr=inet_addr("172.19.198.51")}, [549755813904]) = 0
getsockopt(4, SOL_SOCKET, SO_SNDBUF, [8458000068614604252], [4]) = 0
getsockopt(4, SOL_SOCKET, SO_RCVBUF, [8458000068614641056], [4]) = 0
setsockopt(4, SOL_TCP, TCP_NODELAY, [1], 4) = 0
fcntl(4, F_SETFD, FD_CLOEXEC)           = 0
rt_sigaction(SIGPIPE, {0x1, ~[ILL ABRT BUS FPE SEGV USR2 XCPU XFSZ SYS RTMIN RT_1], SA_RESTORER|SA_RESTART|SA_SIGINFO, 0x325400ebe0}, {SIG_DFL, [], 0}, 8) = 0
write(4, "\0W\0\0\1\0\0\0\1:\1,\0\0 \0\377\377\177\10\0\0\1\0\0\35\0:\0\0\0\0"..., 87) = 87
read(4, "\0I\0\0\4\0\0\0\"\0\0=(DESCRIPTION=(TMP=)("..., 8208) = 73
setsockopt(4, SOL_SOCKET, SO_SNDTIMEO, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
setsockopt(4, SOL_SOCKET, SO_RCVTIMEO, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 16) = 0
close(4)                                = 0
lseek(3, 27136, SEEK_SET)               = 27136
read(3, "\16\0\335\t\0\0\\\0\336\t\0\0\214\0\255\r\0\0\270\0\256\r\0\0\272\0\257\r\0\0\366\0"..., 512) = 512
write(1, "OK (10 msec)\n", 13)          = 13
munmap(0x2b57e9790000, 135168)          = 0
munmap(0x2b57e976f000, 135168)          = 0
munmap(0x2b57e974e000, 135168)          = 0
munmap(0x2b57e972d000, 135168)          = 0
munmap(0x2b57e97b1000, 528384)          = 0
munmap(0x2b57e9a62000, 528384)          = 0
munmap(0x2b57e9622000, 1090528)         = 0
close(3)                                = 0
exit_group(0)                           = ?


然后在客户端试一下
connect(4, {sa_family=AF_INET, sin_port=htons(1563), sin_addr=inet_addr("172.19.198.51")}, 16) = -1 EINPROGRESS (Operation now in progress)
times({tms_utime=0, tms_stime=1, tms_cutime=0, tms_cstime=0}) = 1799838785
mmap(NULL, 528384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b3e1ce2e000
poll([{fd=4, events=POLLOUT}], 1, 60000) = 1 ([{fd=4, revents=POLLERR|POLLHUP}])
getsockopt(4, SOL_SOCKET, SO_ERROR, [519270883345301617], [4]) = 0
close(4)                                = 0
getsockopt(4, SOL_SOCKET, SO_SNDBUF, 0x7fff4451cd1c, 0x7fff4451cd18) = -1 EBADF (Bad file descriptor)
getsockopt(4, SOL_SOCKET, SO_RCVBUF, 0x7fff4451cd1c, 0x7fff4451cd18) = -1 EBADF (Bad file descriptor)
lseek(3, 39936, SEEK_SET)               = 39936
read(3, "\r\0\3650\0\0V\0\3660\0\0t\0\3670\0\0\217\0\3700\0\0\246\0\3710\0\0\277\0"..., 512) = 512
write(1, "TNS-12543: TNS:destination host "..., 44) = 44
munmap(0x2b3e1cb5d000, 135168)          = 0
munmap(0x2b3e1cb3c000, 135168)          = 0
munmap(0x2b3e1cb1b000, 135168)          = 0
munmap(0x2b3e1cafa000, 135168)          = 0
munmap(0x2b3e1cb7e000, 528384)          = 0
munmap(0x2b3e1ce2e000, 528384)          = 0
munmap(0x2b3e1c9ef000, 1090528)         = 0
close(3)                                = 0
exit_group(1)                           = ?

这样一来问题看似比较明显了,很可能是防火墙或者是其他的网络设置的问题,
发给客户的时候,客户还让我反复验证一下是不是tnsnames.ora。sqlnet.ora的问题,最后还是然他们再检查一下,结果还真有问题,防火墙对于那个端口有限制,重新分配了一下,问题就解决了。

当然,对于这个问题,MOS上有一篇相关的文档说明,可以参考一下。
(Doc ID 1556918.1)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/23718752/viewspace-1138082/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/23718752/viewspace-1138082/

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/congbao6525/article/details/100360095

智能推荐

python简易爬虫v1.0-程序员宅基地

文章浏览阅读1.8k次,点赞4次,收藏6次。python简易爬虫v1.0作者:William Ma (the_CoderWM)进阶python的首秀,大部分童鞋肯定是做个简单的爬虫吧,众所周知,爬虫需要各种各样的第三方库,例如scrapy, bs4, requests, urllib3等等。此处,我们先从最简单的爬虫开始。首先,我们需要安装两个第三方库:requests和bs4。在cmd中输入以下代码:pip install requestspip install bs4等安装成功后,就可以进入pycharm来写爬虫了。爬

安装flask后vim出现:error detected while processing /home/zww/.vim/ftplugin/python/pyflakes.vim:line 28_freetorn.vim-程序员宅基地

文章浏览阅读2.6k次。解决方法:解决方法可以去github重新下载一个pyflakes.vim。执行如下命令git clone --recursive git://github.com/kevinw/pyflakes-vim.git然后进入git克降目录,./pyflakes-vim/ftplugin,通过如下命令将python目录下的所有文件复制到~/.vim/ftplugin目录下即可。cp -R ...._freetorn.vim

HIT CSAPP大作业:程序人生—Hello‘s P2P-程序员宅基地

文章浏览阅读210次,点赞7次,收藏3次。本文简述了hello.c源程序的预处理、编译、汇编、链接和运行的主要过程,以及hello程序的进程管理、存储管理与I/O管理,通过hello.c这一程序周期的描述,对程序的编译、加载、运行有了初步的了解。_hit csapp

18个顶级人工智能平台-程序员宅基地

文章浏览阅读1w次,点赞2次,收藏27次。来源:机器人小妹  很多时候企业拥有重复,乏味且困难的工作流程,这些流程往往会减慢生产速度并增加运营成本。为了降低生产成本,企业别无选择,只能自动化某些功能以降低生产成本。  通过数字化..._人工智能平台

electron热加载_electron-reloader-程序员宅基地

文章浏览阅读2.2k次。热加载能够在每次保存修改的代码后自动刷新 electron 应用界面,而不必每次去手动操作重新运行,这极大的提升了开发效率。安装 electron 热加载插件热加载虽然很方便,但是不是每个 electron 项目必须的,所以想要舒服的开发 electron 就只能给 electron 项目单独的安装热加载插件[electron-reloader]:// 在项目的根目录下安装 electron-reloader,国内建议使用 cnpm 代替 npmnpm install electron-relo._electron-reloader

android 11.0 去掉recovery模式UI页面的选项_android recovery 删除 部分菜单-程序员宅基地

文章浏览阅读942次。在11.0 进行定制化开发,会根据需要去掉recovery模式的一些选项 就是在device.cpp去掉一些选项就可以了。_android recovery 删除 部分菜单

随便推点

echart省会流向图(物流运输、地图)_java+echart地图+物流跟踪-程序员宅基地

文章浏览阅读2.2k次,点赞2次,收藏6次。继续上次的echart博客,由于省会流向图是从echart画廊中直接取来的。所以直接上代码<!DOCTYPE html><html><head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" /&_java+echart地图+物流跟踪

Ceph源码解析:读写流程_ceph 发送数据到其他副本的源码-程序员宅基地

文章浏览阅读1.4k次。一、OSD模块简介1.1 消息封装:在OSD上发送和接收信息。cluster_messenger -与其它OSDs和monitors沟通client_messenger -与客户端沟通1.2 消息调度:Dispatcher类,主要负责消息分类1.3 工作队列:1.3.1 OpWQ: 处理ops(从客户端)和sub ops(从其他的OSD)。运行在op_tp线程池。1...._ceph 发送数据到其他副本的源码

进程调度(一)——FIFO算法_进程调度fifo算法代码-程序员宅基地

文章浏览阅读7.9k次,点赞3次,收藏22次。一 定义这是最早出现的置换算法。该算法总是淘汰最先进入内存的页面,即选择在内存中驻留时间最久的页面予以淘汰。该算法实现简单,只需把一个进程已调入内存的页面,按先后次序链接成一个队列,并设置一个指针,称为替换指针,使它总是指向最老的页面。但该算法与进程实际运行的规律不相适应,因为在进程中,有些页面经常被访问,比如,含有全局变量、常用函数、例程等的页面,FIFO 算法并不能保证这些页面不被淘汰。这里,我_进程调度fifo算法代码

mysql rownum写法_mysql应用之类似oracle rownum写法-程序员宅基地

文章浏览阅读133次。rownum是oracle才有的写法,rownum在oracle中可以用于取第一条数据,或者批量写数据时限定批量写的数量等mysql取第一条数据写法SELECT * FROM t order by id LIMIT 1;oracle取第一条数据写法SELECT * FROM t where rownum =1 order by id;ok,上面是mysql和oracle取第一条数据的写法对比,不过..._mysql 替换@rownum的写法

eclipse安装教程_ecjelm-程序员宅基地

文章浏览阅读790次,点赞3次,收藏4次。官网下载下载链接:http://www.eclipse.org/downloads/点击Download下载完成后双击运行我选择第2个,看自己需要(我选择企业级应用,如果只是单纯学习java选第一个就行)进入下一步后选择jre和安装路径修改jvm/jre的时候也可以选择本地的(点后面的文件夹进去),但是我们没有11版本的,所以还是用他的吧选择接受安装中安装过程中如果有其他界面弹出就点accept就行..._ecjelm

Linux常用网络命令_ifconfig 删除vlan-程序员宅基地

文章浏览阅读245次。原文链接:https://linux.cn/article-7801-1.htmlifconfigping &lt;IP地址&gt;:发送ICMP echo消息到某个主机traceroute &lt;IP地址&gt;:用于跟踪IP包的路由路由:netstat -r: 打印路由表route add :添加静态路由路径routed:控制动态路由的BSD守护程序。运行RIP路由协议gat..._ifconfig 删除vlan