Oralce 远程JDBC无法连接,自带Sql plus 可以正常访问,sql developer无法连接

        出现的问题: Oracle 11g 数据库突然无法访问,通过web应用 或 Oracle自带的 SQL developer 工具也无法连接,然而Oracle自带的Sql plus 却能成功连接访问数据。

        在用SQL develper 工具连接时直接提示访问连接失败:java.sql.SQLException: Io 异常: The Network Adapter could not establish the connection  错误编码17002 code。

       

        同时发现 tnsping 值非常大 。如下图:

 Oralce 远程JDBC无法连接,自带Sql plus 可以正常访问,sql developer无法连接_第1张图片

        解决:

            从以上错误信息可以判断出可能是以下几个问题:

            1. 数据库监听肯定出现异常 ,因为Sql plus 和Sql develper 的访问机制是不一样的,前者是直接访问数据库数据,而后者是通过

                   监听找到相应端口进行访问的。

                    通常有时我们会发现,监听的服务我们是能正常启动,给人的感觉监听没有任何异常。但是我需要告诉你

            不要被这种假象迷惑了你判断力。 监听出现异常并不是表示说监听不能启动,有可能是监听无法响应,或自身运行不良。

           监听本身这个服务可能是没有问题的。那说明监听可能因为其他因素导致不正常工作。

                     另外,监听日志文件大小如果大于4G后,也会导致监听运行异常。无法访问数据的现象。

                     D:\app\diag\tnslsnr\administrator\listener\trace目录下的listener.log

                      我本次遇到的问题就是这个文件已经4G多了,就导致我的应用突然无法访问数据库了。

                     可以通过在listener.ora 文件中配置 LOGGING_LISTENER = OFF 关闭监听日志的记录

            2. IP地址和主机名的映射关系配置不正确  这个主要看 host文件了

            3. Oracle 数据库所在的服务器和PC 的DNS解析有问题。

                 如果这台服务器存在多个地址,那么监听会根据DNS的解析情况进行访问,如果监听拿到的第一个IP地址的DNS有问题,那么

                只有在请求超时后,才会去尝试下一个IP的DNS解析请求。这样就会让你的连接请求等待很久 甚至超时。

 

你可能感兴趣的:(Oracle)