Oracle的TNS-12502错误原因及解决
前几天收到一位读者朋友的来信 询问以下问题
在我的监听日志中出现错误TNS : TNS:listener received no CONNECT_DATA from client经过查找资料了解到这种错误应该是客户端tnsnames ora中没有写 CONNECT_DATA的原因 我检查过客户端的机器没有发现问题 目前的现象 每几分钟出现一次该错误(见附件) 即使是在凌晨的时候也是 这段时间我们没有开发人员在凌晨时候使用Oracle 到目前为止也没有发现客户端机器不能正常连接数据库的情况
今天才有时间研究一下 对于TNS 错误 Oracle的解释如下
Error: ORA / TNS Text: TNS:listener received no CONNECT_DATA from client Cause: No CONNECT_DATA was passed to the listener Action: Check that the service name resolved from TNSNAMES ORA has the CONNECT_DATA ponent of the connect descriptor
也就是说只有在TNSNAMES ORA文件中不包含CONNECT_DATA时会出现此问题
那么当通过一些网络工具或HA工具等检测监听器端口时 日志中就可能记录如上错误 我们可以简单模拟一下 在客户端通过telnet数据库服务器的 端口测试连通性
C:\>telnet
此时在日志中就会记录如下信息
TNS : TNS:listener received no CONNECT_DATA from client AUG : : * TNS : TNS:listener received no CONNECT_DATA from client AUG : : * TNS : TNS:listener received no CONNECT_DATA from client AUG : : * TNS : TNS:listener received no CONNECT_DATA from client lishixinzhi/Article/program/Oracle/201311/18024