近期部署在生产环境的应用突然无法访问,查看应用日志发现无法获取数据库连接。

SystemErr     R Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection
SystemErr R at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:359)
SystemErr R at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422)
SystemErr R at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:672)
SystemErr R at oracle.net.ns.NSProtocol.connect(NSProtocol.java:237)
SystemErr R at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1042)
SystemErr R at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:301)
SystemErr R ... 154 more
SystemErr R Caused by: java.net.ConnectException: Connection refused: connect
SystemErr R at java.net.DualStackPlainSocketImpl.waitForConnect(Native Method)
SystemErr R at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:96)
SystemErr R at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:369)
SystemErr R at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:230)
SystemErr R at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:212)
SystemErr R at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:191)
SystemErr R at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
SystemErr R at java.net.Socket.connect(Socket.java:642)
SystemErr R at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:141)
SystemErr R at oracle.net.nt.ConnOption.connect(ConnOption.java:123)
SystemErr R at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:337)
SystemErr R ... 159 more

操作记录:

1、重启数据库的监听、实例服务后仍然无法通过客户端连接;

2、重启了数据库服务器后再次启动监听和实例服务后依然无法连接;

3、此时尝试在服务器中使用客户端连接工具连接数据库无法获取连接,排除了网络问题的可能性;

4、停止连接至数据库服务器的App后,监听和实例服务能够正常启动,也能通过客户端连接至数据库服务器;

5、此时通过exp命令对数据库进行了数据备份;

6、启动连接此数据库的App后发现仍然无法正常获取连接,再次通过客户端工具连接Oracle实例发现已经无法获取连接;

7、再次停止应用,尝试了几次重启Oracle服务后终于启动起来;

8、将备份数据导入备份数据库服务器后,将应用的数据库连接切换至备份数据库,恢复正常服务;

排查问题

1、排除网络故障的可能性;

2、检查监听文件配置正确;

路径:
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora

3、检查tnsnames配置正确;

路径:
D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

4、查看错误日志;

路径:
D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_orcl.log

通过查看日志发现大量如下错误:

TNS-12537: TNS: 连接关闭
ns secondary err code: 12560
nt main err code: 0
nt secondary err code: 0
nt OS err code: 0

通过百度错误关键字“TNS-12537: TNS: 连接关闭”,找到一篇文章:

http://blog.itpub.net/23169974/viewspace-1067401/

该文章描述了listener.log日志文件过大导致服务异常的问题,感觉现象与我的很像。

5、查看listener.log日志

通过搜索日志文件终于找到该文件。

路径:
D:\app\Administrator\diag\tnslsnr\WIN-RU03CB21QGA\listener\trace\listener.log

发现该文件确实已经增长至4GB大小,与博客中描述的问题一致,终于找到问题所在。

问题处理:

解决办法很简单,就是停止所有Oracle服务,清除日志文件,重启服务后即可。

Windows平台下Oracle 11g R2监听文件日志过大,造成客户端无法连接的问题处理的更多相关文章

  1. Windows平台下Oracle监听服务启动过程中日志输出

    Windows平台下Oracle监听服务启动过程中日志输出记录. 日志目录:D:\app\Administrator\diag\tnslsnr\WIN-RU03CB21QGA\listener\tra ...

  2. 全网最详细的Windows系统里Oracle 11g R2 Client客户端(64bit)安装后的初步使用(图文详解)

    不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1)   打开服务(cmd— ...

  3. Windows平台下Oracle实例启动过程中日志输出

    Windows平台下Oracle实例启动过程中日志输出记录. 路径:D:\app\Administrator\diag\rdbms\orcl\orcl\trace\alert_orcl.log 输出内 ...

  4. 全网最详细的Windows系统里Oracle 11g R2 Client(64bit)的下载与安装(图文详解)

    不多说,直接上干货! 环境: windows10系统(64位) 最好先安装jre或jdk(此软件用来打开oracle自带的可视化操作界面,不装也没关系:可以安装plsql,或者直接用命令行操作) Or ...

  5. 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)安装后的初步使用(图文详解)

    不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 命令行方式测试安装是否成功 1)   打开服务(cm ...

  6. 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的完全卸载(图文详解)

    不多说,直接上干货! 前期博客 全网最详细的Windows系统里Oracle 11g R2 Database(64bit)的下载与安装(图文详解) 若你不想用了,则可安全卸载. 完全卸载Oracle ...

  7. 全网最详细的Windows系统里Oracle 11g R2 Database服务器端(64bit)的下载与安装(图文详解)

    不多说,直接上干货! 环境: windows10系统(64位) 最好先安装jre或jdk(此软件用来打开oracle自带的可视化操作界面,不装也没关系:可以安装plsql,或者直接用命令行操作) Or ...

  8. [转]通过Net Manager 配置Oracle 11g本地监听服务(listener service)

    本文转自:http://blog.csdn.net/mozart_cai/article/details/8596504 [Target] 通过ip address 监听orcl服务,而不是通过loc ...

  9. Windows系统里Oracle 11g R2 Client(64bit)的下载与安装

    环境: windows10系统(64位) 最好先安装jre或jdk(此软件用来打开oracle自带的可视化操作界面,不装也没关系:可以安装plsql,或者直接用命令行操作) Oracle 11g 是仅 ...

随机推荐

  1. 子集和的目标值(codevs 1692)

    题目描述 Description 给定n个整数in和目标值T,求某一非空子集使 子集的元素的和 与 目标值之差 的绝对值最小,元素可重复 输入描述 Input Description 第一行为整数n ...

  2. [NOIP2007] 普及组

    奖学金 模拟 开个struct排序即可 c++吼啊 /*by SilverN*/ #include<algorithm> #include<iostream> #include ...

  3. Core java for impatient 笔记 ch8 流

    流stream 使用了数据视图,让你可以在比集合更高的概念上指定操作使用流,你只需要将操作的调度留给实现,例如,假设你要计算某个属性的平均值,你只需要指定数据源和属性,然后流类库会优化计算,比如使用多 ...

  4. Linux MariaDB 遗忘密码后重置密码

    Linux MariaDB 遗忘密码后重置密码 MariaDB 是 MySQL 的一个分支数据库.处理的办法和 MySQL 相同. 修改 MySQL 配置文件 在 [mysqld] 追加配置项: [r ...

  5. 设计并实现一个LRU Cache

    一.什么是Cache 1 概念 Cache,即高速缓存,是介于CPU和内存之间的高速小容量存储器.在金字塔式存储体系中它位于自顶向下的第二层,仅次于CPU寄存器.其容量远小于内存,但速度却可以接近CP ...

  6. 修改windows下mysql的max_allowed_packet的值

    执行sql报错:Error updating database. Cause: com.mysql.jdbc.PacketTooBigException: Packet for query is to ...

  7. 《深入理解Android 卷III》第四章 深入理解WindowManagerService

    <深入理解Android 卷III>即将公布,作者是张大伟.此书填补了深入理解Android Framework卷中的一个主要空白.即Android Framework中和UI相关的部分. ...

  8. charset='utf8mb4'

    charset='utf8mb4' conn = pymysql.connect(host=h, port=pt, user=u, passwd=p, db=db, charset='utf8mb4' ...

  9. 有意思的RTL函数RegisterClass(在持久化中,你生成的一个新类的对象,系统并不知道他是如何来的,因此需要你注册)good

    例子1:Delphi中使用纯正的面向对象方法(这个例子最直接) Delphi的VCL技术使很多程序员能够非常快速的入门:程序员门只要简单的拖动再加上少量的几个Pascal语句,呵呵,一个可以运行得非常 ...

  10. go14--并发concurrency,Goroutine ,channel

    package main /** 并发concurrency 很多人都是冲着 Go 大肆宣扬的高并发而忍不住跃跃欲试,但其实从 源码的解析来看,goroutine 只是由官方实现的超级“线程池”而已. ...