• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

巧用Nagios脚本监控Oracle连接

mysql 搞代码 4年前 (2022-01-09) 15次浏览 已收录 0个评论

场景:程序修改完成后,上传到应用服务器tomcat,重启tomcat后,发现启动异常!前端nginx负载均衡出现504错误,网站无法打开!排

场景:

程序修改完成后,上传到应用服务器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的原因,出现监听器卡住的情况,导致数据库连接失败!参见:

后期维护:

为了尽量避免这种问题,想到去写一个监控脚本配合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/ch来@源gao*daima.com搞@代#码网eck_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

  • 搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:巧用Nagios脚本监控Oracle连接
    喜欢 (0)
    [搞代码]
    分享 (0)
    发表我的评论
    取消评论

    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址