场景:程序修改完成后,上传到应用服务器tomcat,重启tomcat后,发现启动异常!前端nginx负载均衡出现504错误,网站无法打开!排查:经过排查tomcat日志,发现连接数据库异常;登陆数据库后以"conn /as sysdba"方式登陆正常,数据库轻载,无压力;于是检查数据库的监听器,输入"lsntctl services"命令,卡住,半天不出结果…故障处理:输入"lsntctl stop" 或者"lsntctl reload"命令,卡住,半天不出结果,于是输入service network restart命令,一样没有效果!于是出必杀技,输入"netstat -ntpl|grep :1521"命令找出监听器的进程号,kill -9结束掉,然后重启监听器,再启动tomcat正常,网站访问畅通无阻!原因分析:可能由于数据库bug的原因,出现监听器卡住的情况,导致数据库连接失败!参见:http://www.linuxidc.com/Linux/2012-02/55196.htm后期维护:为了尽量避免这种问题,想到去写一个监控脚本配合nagios监控,当数据库连接异常的时候,可以第一时间收到报警短信;java程序连接数据库使用连接池,所以不一定会及时暴露出问题!写一个脚本放任务计划中运行,定期去连接下数据库,查询下系统时间和数据库的状态,spool输出到临时文件上
- [root@server199 ~]# crontab -l
- */5 * * * * /usr/local/nagios/libexec/connect_Oracle.sh
- [root@server199 ~]# cat /usr/local/nagios/libexec/connect_oracle.sh
#!/bin/sh
#functions: connect oracle server test
#author:lw.yang
#modify_date: 2012-02-22 - rm -rf /tmp/check_oracle.log
export ORACLE_HOME=/u01/app/oracle/product/10.2.0/db_1/
$ORACLE_HOME/bin/sqlplus username/password@ip:1521/services_name <<EOF
set echo off
set feedback off
spool /tmp/check_oracle.log
alter session set nls_date_format="YYYY-MM-DD:HH24:MI:SS";
select sysdate from dual;
select name,open_mode from v$database;
spool off
set echo on
set feedback on
EOF
SQLite3编程初级入门Linux下Oracle 10g偶然性卡住登陆相关资讯 Nagios oracle数据库教程
- Linux下Nagios+PNP4Nagios的安装与 (今 08:25)
- CentOS7安装Nagios并配置出图详解 (12/02/2015 19:36:58)
- Nagios Core 4.1.0rc2 发布下载, (07/18/2015 09:18:42)
| - Nagios 监控 SNMP 温度计 (08月21日)
- CentOS 6.7 安装Nagios教程 (11/23/2015 10:36:49)
- Nagios插件之登陆防火墙实现 (07/09/2015 19:58:25)
|
本文评论 查看全部评论 (0)