国庆节凌晨0:36收到邮件报网通Tomcat服务器挂掉,Tomcat总是那么脆弱,重启是家常便饭了,但这次和往常不一样,WEB服务始终没有起来,马上重启整台服务器再启动Tomcat,故障依旧。

马上查看Tomcat日志:

2010-10-1 1:10:42 com.fsm.util.SearchDispatchFilter init
信息: SearchDispatchFilter.init() done
***********************创建数据源********************
createDataSource:DriverClassName=oracle.jdbc.driver.OracleDriver
createDataSource:Url=jdbc:oracle:thin:@db_server:1521/ora8i
***************************************************

过了3分钟,才出现久违“Server startup”:

[FSM-ERROR]:2010-10-01 01:13:55,394-org.hibernate.util.JDBCExceptionReporter.logExceptions(LINE:78)
Cannot create PoolableConnectionFactory (Io 异常: The Network Adapter could not establish the connection)
org.tuckey.web.filters.urlrewrite.UrlRewriteFilter INFO: loaded (conf ok)
2010-10-1 1:13:58 org.apache.coyote.http11.Http11BaseProtocol start
信息: Starting Coyote HTTP/1.1 on http-80
2010-10-1 1:13:58 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2010-10-1 1:13:58 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/84  config=null
2010-10-1 1:13:58 org.apache.catalina.storeconfig.StoreLoader load
信息: Find registry server-registry.xml at classpath resource
2010-10-1 1:13:58 org.apache.catalina.startup.Catalina start
信息: Server startup in 205603 ms

通常Tomcat也就是启动20来秒,这次却启动了200多秒,不太正常,再往上看出现了“JDBC”和“The Network Adapter could not establish the connection”,99%就是与数据库建立连接时候出现了问题,马上telnet数据库的1521端口,可连接是通的:

[root@primary_node bin]# telnet db_server 1521
Trying 192.168.4.20...
Connected to db_server (192.168.4.20).
Escape character is '^]'.
aaaaa
aaa
aaaaa
aaaaaa
aaaaa

上面那堆'”a”是我输入的,检查连接是否真的通了。

于是将矛头指向配置文件和运行所需的jar包上,也没有发现最近被修改过的痕迹,将另一台服务器的配置文件和jar包copy过来,重启Tomcat,故障依旧。此时已是2:11分,此时该台网通Tomcat服务器的VIP早就被电信服务器抢过去了,服务没有受到影响,此时精神上有点吃不消了,赶紧睡觉去,获取周公能给我灵感。

早上7:25分醒来,第一件事睁开眼睛,第二件事登录到服务器上继续调试问题,首先将数据库IP指向测试数据库,启动Tomcat,WEB服务跑起来了,这个现象再次让我把矛头指向Oracle服务器,由于服务器上没有安装Oracle的客户端只能通过telnet这种原始的方式进行测试,telnet测试的Oracle服务器:

[root@primary_node bin]# telnet test_db_server 1521
Trying 192.168.4.74...
Connected to db_server (192.168.4.74).
Escape character is '^]'.
aaaaa
aaa
Connection closed by foreign host.

奇怪了,测试用的Oracle服务器会主动close连接,而生产用的Oracle服务器不会主动close连接,终于找到突破口了。 登录到Oracle服务器,查看以下listener的状态:

[oracle@wz_oracle1 adump]$ lsnrctl status LSNRCTL for Linux: Version 10.2.0.2.0 - Production on 01-OCT-2010 09:08:09Copyright (c) 1991, 2005, Oracle.  All rights reserved.Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.20)(PORT=1521)))

Hang住,取消,直接  lsnrctl stop ,还是Hang住,出必杀 killall –9 tnslsnr,再启动:

[oracle@wz_oracle1 adump]$ lsnrctl start LSNRCTL for Linux: Version 10.2.0.2.0 - Production on 01-OCT-2010 09:10:17Copyright (c) 1991, 2005, Oracle.  All rights reserved.Starting /u01/app/oracle/bin/tnslsnr: please wait...TNSLSNR for Linux: Version 10.2.0.2.0 - Production
System parameter file is /u01/app/oracle/network/admin/listener.ora
Log messages written to /u01/app/oracle/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.20)(PORT=1521)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.30)(PORT=1521)))Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.4.20)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.2.0 - Production
Start Date                01-OCT-2010 09:10:17
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /u01/app/oracle/network/admin/listener.ora
Listener Log File         /u01/app/oracle/network/log/listener.log
Listening Endpoints Summary...(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.20)(PORT=1521)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.4.30)(PORT=1521)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "ora8i" has 1 instance(s).Instance "ora8i", status UNKNOWN, has 1 handler(s) for this service...
Service "shdb" has 1 instance(s).Instance "ora8i", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

搞定,重启Tomcat,一切恢复正常。

这次故障处理时间长达3小时,最开始以为是一个普通的故障,重启一下Tomcat就能完事,但没那么简单,然后被 telnet 的现象所迷惑,走入了一条长长的弯路,“工欲善其事,必先利其器”如果当时找一台服务器用sqlplus 远程连一下数据库就不用折腾那么久了。

[原]工欲善其事,必先利其器,记一次处理Oracle Listener挂掉的处理过程相关推荐

  1. oracle重建实例_记一次误删Oracle控制文件并恢复过程

    概述 当你在数据库运行时误删除了控制文件怎么办?很不幸有一次我就有这个情况,虽然是测试环境,这里因为我有事先把控制文件分别备份,所以恢复还是比较简单的.下面简单记录下怎么恢复. 问题 控制文件版本不一 ...

  2. pfv和php,【Retina China 2019】工欲善其事必先利其器——影像学在眼底病中的应用与发展...

    原标题:[Retina China 2019]工欲善其事必先利其器--影像学在眼底病中的应用与发展 编者按 影像学是眼底病诊治的利器,伴随着近年来影像学的飞速发展,眼底病展现出一种蓬勃的朝气.2月21 ...

  3. 【CS-Notes】工欲善其事必先利其器(Code、Git、Docker、Linux)

    文章目录 Code工作台(工欲善其事必先利其器) 1.通用工具 1.1.编辑器 1.2.Git 基本版本控制 1.3.Docker容器 2.Linux工作台 2.1.Linux命令 2.2.开发工具 ...

  4. 工欲善其事必先利其器 之 VirtualBox

    工欲善其事必先利其器 之 VirtualBox 文章目录 工欲善其事必先利其器 之 VirtualBox 前言 一.VirtualBox 概述 二.VirtualBox 功能特性 三.搭建你自己的 V ...

  5. 工欲善其事必先利其器 之 DockerDesktop(上)

    关键词:DockerDesktop.如何在桌面运行Docker.Docker容器 工欲善其事必先利其器 之 DockerDesktop(上) 文章目录 工欲善其事必先利其器 之 DockerDeskt ...

  6. 工业工程专业C语言,工欲善其事必先利其器——工业工程课程设置及其核心专业课简介...

    新朋友点上方蓝字"IE臭皮匠"快速关注 公众号成立期间很多IE学子留言,说应聘时HR不知道工业工程是什么.能做什么,对此小编十分有同感.要想了解IE是什么.能做什么,首先要了解学了 ...

  7. 手把手带你入门Python爬虫(一、工欲善其事必先利其器)

    工欲善其事必先利其器 一.下载Python 二.下载安装PyCharm 三.Mysql & Navcat 四.虚拟环境的安装和配置 1. 为什么需要安装虚拟环境? 2. 使用`pip`安装`v ...

  8. github 著名php,工欲善其事必先利其器,盘点Github上那些优秀的PHP项目

    工欲善其事必先利其器,作为一个开发者,了解并使用前人造好的轮子能让我们的开发事半功倍,在这里老宅整理了几个Github上有趣的php项目与大家分享. swoole Github仓库名称:swoole/ ...

  9. 工欲善其事必先利其器,Apache Kylin原来支持这么多可视化工具

    工欲善其事必先利其器,Apache Kylin原来支持这么多可视化工具 坚持原创,写好每一篇文章 Apache Kylin的广泛应用还得益于它对很多软件都非常的支持,这篇文章我们将汇总一下Apache ...

  10. 工欲善其事必先利其器-C语言拓展–嵌入式C语言(一)

    工欲善其事必先利其器-C语言拓展–嵌入式C语言(一) 我是golang出生,当时做项目的时候java.c++.js.python都折腾过,但是关于c语言的接触,基本上都停留在大一的那个暑假.后来因为要 ...

最新文章

  1. logstash redis kafka传输 haproxy日志
  2. 在C#中使用代理的方式触发事件 的简单习作
  3. WPF 模仿IconPacks库写图标按钮
  4. portlet java_Java Portlet 规范概述
  5. (82)Vivado系统同步接口约束
  6. 图片太大_图片太大?手把手教你如何用java实现一个高质量图片压缩程序
  7. 正则表达式相关:C# RichTextBox显示html文本内容
  8. 使用js实现移动设备访问跳转到指定目录
  9. java 把对象转成map_Java对象转换成Map
  10. Java实现 LeetCode 93 复原IP地址
  11. php ios表情包,十分钟开发一款 iOS 表情包 App
  12. hive数仓、数据中台数据核对的方法
  13. 微信内置浏览器API的常用的js方法
  14. 中文关键词提取tfidf算法改进bsaeline
  15. dnf剑魂buff等级上限_DNF体验服快讯—剑魂加入25开关/25仔变34仔/国庆版本内容前瞻...
  16. 2020年网络工程师发展前景如何
  17. 【数字IC/FPGA】电平同步、脉冲同步、边沿同步
  18. 【敏捷5.2】用户故事的层次和用户故事地图
  19. mount: /dev/sr0 写保护,将以只读方式挂载 mount: 在 /dev/sr0 上找不到媒体 怎么解决
  20. Flutter网络请求Dio库的使用及封装

热门文章

  1. 通信维修专用电源_万可PRO 2电源 | 开拓性通信功能,自信迈入数字化时代
  2. 家庭收支软件的示例--面向对象版本
  3. python检验文件命名_Python如何检查文件名是否为UTF8?
  4. JVM 性能调优实战之:一次系统性能瓶颈的寻找过程
  5. oracle表的操作简述
  6. 监听自身卸载,弹出用户反馈调查
  7. saltstack管理七之minion端备份
  8. 我的vim和emacs配置文件
  9. 浅析指针(pointer)与引用(reference)
  10. Asp.net中模仿Winform的MessageBox