当前位置:  数据库>oracle

Linux/Unix shell 监控Oracle实例(monitor instance)

    来源: 互联网  发布时间:2017-05-16

    本文导语: 使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日至的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来监控 Oracle 实例。 Linux...

使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日至的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来监控 Oracle 实例。

Linux Shell的相关参考:

Linux/Unix shell 脚本中调用SQL,RMAN脚本

Linux/Unix shell sql 之间传递变量

Linux Unix shell 调用 PL/SQL

1、监控Oracle实例shell脚本

  robin@SZDB:~/dba_scripts/custom/bin> more ck_inst.sh 
  # +-------------------------------------------------------+
  # +    CHECK INSTANCE STATUS AND SEND MAIL                |
  # +    Author : Robinson                                  |
  # +    Blog  : http://blog.csdn,net/robinson_0612        |
  # +    Desc:                                              |
  # +        variable X_DB use to exclude some instance    |
  # +-------------------------------------------------------+
 
  #!/bin/bash
 
  # --------------------------------------------
  # Set environment vairable and define variable
  # --------------------------------------------
 
  if [ -f ~/.bash_profile ]; then
      . ~/.bash_profile
  fi
 
  ORATAB=/etc/oratab
  TIMESTAMP=`date +%Y%m%d%H%M`   
  MAILPATH=/users/robin/dba_scripts/sendEmail-v1.56
  LOG_DIR=/users/robin/dba_scripts/custom/log           
  LOG_FILE=${LOG_DIR}/ck_inst_$TIMESTAMP.log
  DBALIST="robinson.cheng@12306.com;robinson_0612@12306.com"
  X_DB='SYBO2SZ|CNQDII|CNFO'
  RETENTION=1
 
  # ----------------------
  # Check instance status
  # ----------------------
 
  if [ -z "$X_DB" ]; then
      X_DB='DUMMY'
  fi
  {
  echo "`date` "
  echo "Oracle Database(s) Status on `hostname`"
  echo "-----------------------------------------"
  db=`egrep -i ":Y|:N" $ORATAB | cut -d":" -f1 | grep -v "#" | grep -v "*"`
  pslist=`ps -ef | grep pmon | grep -v grep`
  dblist=`for i in $db; do echo $i; done | grep -vP $X_DB`
  for i in $dblist; do
      echo "$pslist" | grep "[oa]*_pmon_$i" > /dev/null 2>&1
      if (( $? )); then
          echo "Oracle Instance - $i: Down"
      else
          echo "Oracle Instance - $i: Up"
      fi
  done;
  }|tee -a ${LOG_FILE} 2>&1
 
  # ------------------------
  # Send Email
  # ------------------------
 
  cnt=`cat $LOG_FILE | grep Down | wc -l`
  if [ "$cnt" -gt 0 ]; then
      $MAILPATH/sendEmail -f szdb@2gotrade.com -t $DBALIST -u "Instance status on `hostname`" -o message-file=$LOG_FILE
  fi
 
  # ------------------------------------------------
  # Removing files older than $RETENTION parameter
  # ------------------------------------------------
 
  find ${LOG_DIR} -name "ck_inst*.*" -mtime +$RETENTION -exec rm {} ;
 
  exit
 
  robin@SZDB:~/dba_scripts/custom/bin> ./ck_inst.sh
  Fri Feb  1 15:10:41 CST 2013
  Oracle Database(s) Status on SZDB
  -----------------------------------------
  Oracle Instance - CNBO1: Up
  Oracle Instance - CNBOTST: Down
  Oracle Instance - CNMMBO: Up
  Oracle Instance - MMBOTST: Up
  Oracle Instance - CNMMBOBK: Down
  Oracle Instance - CI8960U: Up
  Oracle Instance - CNBO2: Up
  Feb 01 15:10:41 szdb sendEmail[16024]: Email was sent successfully!

2、补充

a、上面的脚本根据/etc/oratab中列出的实例进行监控,可以监控多个实例。

b、变量X_DB用于排除那些不需要监控的实例,如脚本中排出了3个实例。也可以将该变量置空。

c、如果X_DB的值为空时,我们赋予了DUMMY,确保你的数据库实例名没有使用DUMMY,否则过滤不掉。

d、监控脚本在监控过程中只要有一个实例宕掉,则发送整个监控报告。

d、使用了sendEmail邮件发送程序来发送邮件。参阅:不可或缺的 sendEmail 见

e、尾部清除监控过程中产生的保留日期之前的日志。


    
 
 

您可能感兴趣的文章:

  • linux bash shell命令:文本搜索工具Grep命令选项及实例
  • 初学linux下的c有苦于找不到什么程序实例学习
  • 急需关于linux多线程的代码工程实例-高手请进啊
  • LINUX中实现单实例功能使用哪种IPC好啊?
  • Linux下Apache和tomcat一机多实例整合问题
  • 如何在Linux上实现同时只能启动一个实例的程序?
  • Linux上建立第二个ORACLE实例分析
  • 大家帮我推荐些在linux下用c语言对数据库操作编程的实例或资料吧!谢谢!
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • Linux操作系统下Oracle数据库多实例启动方式及修改内存
  • linux网络编程小实例 client端连不上server端
  • LINUX 或者Windows 如何保证一个进程只有一个实例在运行?如果是C语言,JAVA语言开发,又怎么样保证?
  • 问题很急!!关于dos下的某个中断功能在linux下实现??有具体实例
  • Linux下安装Mysql多实例作为数据备份服务器实现多主到一从多实例的备份
  • 高分求linux命令电子书,电子书里最好带有实例
  • linux bash shell中case语句的实例
  • linux中信号signal函数实例遇到的疑问
  • Linux命令编辑器Shell编程实例大全 下载
  • linux 下如何实现控制所有应用程序为单实例的????
  • Linux下设置Oracle 10g 服务以及实例自动启动
  • Linux下删除Oracle实例
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • linux系统下如何监控和获取用户行为(高分悬赏)
  • 求助:用windows监控linux系统资源
  • 基于Linux的云监控
  • Linux服务器监控 XMonitor-Client
  • Linux下出色的性能监控软件有哪些?
  • linux下的监控软件。
  • Linux文件系统安全监控 inotify-sync
  • Linux 文件监控工具 FileMonitor
  • Linux硬件监控 lm-sensors
  • linux性能监控
  • linux 下监控用户或者进程的流量
  • 问个LINUX系统下程序监控的问题,各位高手进,小弟跪求,十万火急!!!
  • 如何linux下监控进程及其子进程占用资源?
  • linux下怎么监控串口?
  • Linux下如何编程实现监控鼠标和键盘的动作
  • Linux网络监控工具 ntop
  • 关于Linux下的网络监控软件的问题
  • 大虾请问:在windows平台下监控linux桌面的软件
  • linux进程监控问题
  • 求一个linux监控进程的shell程序
  • linux c/c++ IP字符串转换成可比较大小的数字
  • 在win分区上安装linux和独立分区安装linux有什么区别?可以同时安装吗?(两个linux系统)
  • linux哪个版本好?linux操作系统版本详细介绍及选择方案推荐
  • 论坛 iis7站长之家
  • secureCRT下Linux终端汉字乱码解决方法
  • 我重装window后,把linux的引导区覆盖了,进不了linux怎么办?急啊,望热心的人帮助 (现在有linux的盘)
  • Linux c字符串中不可打印字符转换成16进制
  • 安装vmware软件,不用再安装linux系统,就可以模拟linux系统了,然后可以在其上学习一下LINUX下的基本操作 了?
  • Linux常用命令介绍:更改所属用户群组或档案属性
  • 红旗Linux主机可以通过127.0.0.1访问,但如何是连网的Win2000机器通过Linux的IP去访问Linux
  • linux命令大全详细分类介绍及常用linux命令文档手册下载


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,