Linux/Unix shell 监控Oracle实例(monitor instance)
使用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、尾部清除监控过程中产生的保留日期之前的日志。
转:http://blog.csdn.net/leshami/article/details/8563115
Linux/Unix shell 监控Oracle实例(monitor instance)的更多相关文章
- Linux/Unix shell 监控Oracle监听器(monitor listener)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...
- Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...
- Linux/Unix shell 自动发送AWR report(二)
观察Oracle数据库性能,Oracle自带的awr 功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.不过awrrpt.sql脚本执行时需要我们提供一些交互信 ...
- Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- Linux/Unix shell sql 之间传递变量
灵活结合Linux/Unix Shell 与SQL 之间的变量传输,极大程度的提高了DBA的工作效率,本文针对Linux/Unix shell sql 之间传递变量给出几个简单的示例以供参考. Lin ...
- Linux Unix 环境变量设置实例
背景 从第一次写Hello World我们便开始接触环境变量.这最基础的系统设置是必须要掌握的,尤其在是Linux/Unix系统中.比如,哪天某个Java进程出现问题,我们想分析一下其线程堆栈,却发现 ...
- Linux/Unix shell 脚本监控磁盘可用空间
Linux下监控磁盘的空闲空间的shell脚本,对于系统管理员或DBA来说,必不可少.下面是给出的一个监控磁盘空间空间shell脚本的样本,供大家参考. 1.监控磁盘的空闲空间shell脚本 robi ...
- Linux/UNIX环境下Oracle数据库多实例开机启动脚本(转)
操作系统平台:RHEL 5Shell环境:BashOracle:10g2 功能描述:开机时自动切换到oracle用户下,启动oracle的多个实例.并记录数据库的启动情况到自定义的日志文件中. #!/ ...
- Linux/Unix shell 自动发送AWR report
观察Oracle数据库性能,Oracle自带的awr 功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.不过awrrpt.sql脚本执行时需要我们提供一些交互信 ...
随机推荐
- poj 2425 A Chess Game 博弈论
思路:SG函数应用!! 代码如下: #include<iostream> #include<cstdio> #include<cmath> #include< ...
- WCF分布式开发步步为赢(6):WCF服务契约继承与分解设计
上一节我们学习了WCF分布式开发步步为赢(5)服务契约与操作重载部分.今天我们来继续学习WCF服务契约继承和服务分解设计相关的知识点.WCF服务契约继承有何优势和缺点?实际项目里契约设计有什么原则和依 ...
- java理论基础学习一
java的最大优势是跨平台 java的版本和体系架构 1.J2EE Java 2 Enterprise Edition 定位在服务器端的应用 2.J2SE Java 2 Standard Ed ...
- yum downloadonly
有些时候集群中的机器无法联网,通过yum进行安装,这样就需要找一个相同内核的机器将rpm下载后再到相应的机器上进行安装,以解决这一问题. yum 有相应的工具完成这一任务. ...
- kill -9 和kill
kill pid 在kill进程的同时,会将包删掉该进程所在webapps目录下的文件夹,如iexpense文件夹 kill -9 pid 会强制删掉进程,但是不是删掉该进程所在webapps目录下的 ...
- linux下python启动第三方程序,并控制关闭
import subprocess import os import signal p = subprocess.Popen("recordmydesktop -o /home/test/t ...
- 科普:WiFi是谁申请的专利?高通吗?错!
你给Wi-Fi交过专利费吗?你知道Wi-Fi是谁申请的专利吗? 答:肯定是高通! 错! Wi-Fi技术由澳洲政府的研究机构CSIRO在90年代发明并于1996年在美国成功申请了无线网技术专利.(US ...
- Android百度地图开发01之初体验
做关于位置或者定位的app的时候免不了使用地图功能,本人最近由于项目的需求需要使用百度地图的一些功能,所以这几天研究了一下,现写一下blog记录一下,欢迎大家评论指正! 一.申请AK(API Key) ...
- Android APP安全评估工具 Drozer - 安装介绍
一.Drozedr安装 注意事项:安装需要 JavaRuntime Environment (JRE) or Java Development Kit (JDK)环境, 没有安装的请先安装java环境 ...
- 完全自制的五子棋人机对战游戏(VC++实现)
五子棋工作文档 1说明: 这个程序在创建初期的时候是有一个写的比较乱的文档的,但是很可惜回学校的时候没有带回来……所以现在赶紧整理一下,不然再过一段时间就忘干净了. 最初这个程序是受老同学所托做的,一 ...