linux 用用监听器,Linux/Unix shell 监控Oracle监听器(monitor listener)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日至的监控,以
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日至的监控,以及数据库的备份,AWR report的自动邮件等。本文给出Linux 下使用 shell 脚本来监控 Oracle 监听器。
Linux Shell的相关参考:
Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell sql 之间传递变量
Linux Unix shell 调用 PL/SQL
Linux/Unix shell 监控Oracle实例(monitor instance)
1、监控Oracle监听shell脚本
robin@SZDB:~/dba_scripts/custom/bin> more ck_lsnr.sh
# +-------------------------------------------------------+
# + CHECK LISTENER STATUS AND RESTART IT WHEN FAILED |
# + Author : Robinson |
# + Blog :,net/robinson_0612 |
# + Parameter : No |
# +-------------------------------------------------------+
#!/bin/bash
# --------------------
# Define variable
# --------------------
if [ -f ~/.bash_profile ]; then
. ~/.bash_profile
fi
TIMESTAMP=`date +%Y%m%d%H%M`; export TIMESTAMP
DBALIST="robinson.cheng@12306.com"; export DBALIST
MAILPATH=/users/robin/dba_scripts/sendEmail-v1.56
LOG_DIR=/users/robin/dba_scripts/custom/log
LOG_FILE=${LOG_DIR}/lsnr_status_$TIMESTAMP.log
RETENTION=2
# -----------------------------------------
# Define how many listeners need to monitor
# -----------------------------------------
DB_COUNT=6
DB[1]=CNBO1
DB[2]=CNBOTST
DB[3]=CNMMBO
DB[4]=MMBOTST
DB[5]=SYBO2SZ
DB[6]=CNBO2
# -------------------------
# Begin to check listener
# -------------------------
touch $LOG_FILE
echo "`date` " >>$LOG_FILE
echo " The following listeners are down on `hostname`" >>$LOG_FILE
echo "-----------------------------------------------" >>$LOG_FILE
COUNT=1
while [ $COUNT -le $DB_COUNT ];
do
for db in ${DB[$COUNT]};
do
lsnr_flag=`ps -ef | grep -i listener_${DB[$COUNT]} | grep -v grep`
if [ -z "$lsnr_flag" ]; then
echo "The listener for the database ${DB[$COUNT]} is down." >>$LOG_FILE
echo "=======> restart listener for the database ${DB[$COUNT]}" >>$LOG_FILE
lsnrctl start listener_${DB[$COUNT]} >>$LOG_FILE
echo -e "------------------------------------------------------------------\n" >>$LOG_FILE
fi
done;
COUNT=`expr $COUNT + 1`
done;
# --------------------------
# Send Email
# --------------------------
cnt=`grep "restart listener" $LOG_FILE |wc -l`
if [ "$cnt" -gt 0 ];then
$MAILPATH/sendEmail -f szdb@2gotrade.com -t $DBALIST -u "Listener crashed on `hostname`" -o message-file=$LOG_FILE
else
rm -rf $LOG_FILE
fi
# ------------------------------------------------
# Removing files older than $RETENTION parameter
# ------------------------------------------------
find ${LOG_DIR} -name "*lsnr_status*" -mtime +$RETENTION -exec rm {} \;
exit
oracle@SZDB:/users/robin/dba_scripts/custom/bin> ./ck_lsnr.sh
Feb 01 17:16:34 szdb sendEmail[18611]: Email was sent successfully!
Fri Feb 1 17:16:33 CST 2013 #下面是测试脚本邮件发送包含的内容
The following listeners are down on SZDB
-----------------------------------------------
The listener for the database CNBO1 is down.
=======> restart listener for the database CNBO1
LSNRCTL for Linux: Version 10.2.0.3.0 - Production on 01-FEB-2013 17:16:33
Copyright (c) 1991, 2006, Oracle. All rights reserved.
Starting /users/oracle/OraHome10g/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.3.0 - Production System parameter file is
/users/oracle/OraHome10g/network/admin/listener.ora
Log messages written to /users/oracle/OraHome10g/network/log/listener_cnbo1.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.101.7.2)(PORT=1901)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.101.7.2)(PORT=1901)))
STATUS of the LISTENER
------------------------
Alias listener_CNBO1
Version TNSLSNR for Linux: Version 10.2.0.3.0 - Production
Start Date 01-FEB-2013 17:16:33
Uptime 0 days 0 hr. 0 min. 0 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /users/oracle/OraHome10g/network/admin/listener.ora
Listener Log File /users/oracle/OraHome10g/network/log/listener_cnbo1.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.101.7.2)(PORT=1901)))
Services Summary...
Service "CNBO1" has 1 instance(s).
Instance "CNBO1", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
------------------------------------------------------------------
2、补充
a、上面的监控监听脚本可以监控多个监听器。
b、监听器的名字的定义格式为LISTENER_$ORACLE_SID,未考虑缺省监听器的情形,,如使用缺省监听器请做相应更改。
b、使用了数组的方式来定义实例名,每一个对应一个监听器,确保DB_COUNT的值与需要监控的监听器个数相符。
c、数组的每一个元素使用的是ORACLE_SID,如果是RAC,可以将其改为主机名。
d、如果检测到监听器宕掉的情形则会自动重启监听并发送邮件。
e、使用了sendEmail邮件发送程序来发送邮件。参阅:不可或缺的 sendEmail
f、通过crontab来部署该脚本。另,Oracle 10g测试可用,Oracle 11g待测。
声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理
linux 用用监听器,Linux/Unix shell 监控Oracle监听器(monitor listener)相关推荐
- Linux/Unix shell 监控Oracle告警日志(monitor alter log file)
使用shell脚本实现对Oracle数据库的监控与管理将大大简化DBA的工作负担,如常见的对实例的监控,监听的监控,告警日志的监控,以及数据库的备份,AWR report的自动邮件等.本文给出Linu ...
- Oracle 监听器日志配置与管理
--======================== -- Oracle 监听器日志配置与管理 --======================== Oracle 监听器是一个服务器端程序,用 ...
- 【编程实践】Linux / UNIX Shell编程极简教程
不同于一般的介绍Linux Shell 的文章,本文并未花大篇幅去介绍 Shell 语法,而是以面向"对象" 的方式引入大量的实例介绍 Shell 日常操作,"对象&qu ...
- 使用 shell 脚本对 Linux 系统和进程资源进行监控
Shell 简介 Shell 语言对于接触 LINUX 的人来说都比较熟悉,它是系统的用户界面,提供了用户与内核进行交互操作的一种接口.它接收用户输入的命令并把它送入内核去执行.实际上 Shell 是 ...
- linux shell spool,Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- 《Linux与unix Shell编程指南》 总结
<Linux与unix Shell编程指南> 总结 标签: linux网络dstcron服务器 2011-01-10 18:27 3742人阅读 评论(0) 收藏 举报 分类: Linux ...
- 修改linux下全局数据库名,linux/unix下修改oracle数据库实例名的方法
linux/unix下修改oracle数据库实例名的方法 2018年12月10日 | 萬仟网IT编程 | 我要评论 linux/unix下修改oracle实例名的方法 1.检查原来的数据库实例名 $ ...
- 使用shell脚本对Linux系统和进程资源进行监控
今天发现一个网站,快课网,感觉还不错,里面有编程,面试,算法等等相关内容. 链接如下:http://www.cricode.com/ 首页便看到这篇文章,正好对Linux和shell等持续关注,转载学 ...
- 业界重磅新书《UNIX/Linux网络日志分析与流量监控》首发
<UNIX/Linux网络日志分析与流量监控> 出版社官网: http://www.cmpbook.com/stackroom.php?id=39384 每本图书附赠51CTO学院的价值1 ...
- 《UNIX/Linux网络日志分析与流量监控》实验环境下载
<UNIX/Linux网络日志分析与流量监控>实验环境下载 1.Ossim 4.1 虚拟机下载 (适合2~4G内存的服务器运行),该虚拟机压缩包内包含系统登录密码,Web UI登录密码需 ...
最新文章
- 最全 Neo4j 可视化图形数据库的工具!
- [原]消耗CPU资源的shell脚本
- c语言如何获取串口列表,如何通过串口来读写数据,请教达人
- Java常见异常(Runtime Exception )小结
- java 冒泡 二分法,日常总结---冒泡排序,二分法算法 面试题
- “并发用户数”、“系统用户数”和“同时在线用户数”的计算公式
- Mybatis SQL拦截器实现
- OpenGL样板程序,会转动的正方形
- python远程调用摄像头_Python设置Socket代理及实现远程摄像头控制的例子
- fc588热敏打印机驱动_为称重仪表设计热敏打印模块 - 工业自动化称重仪表
- C++函数指针使用示例
- 【思维】Kenken Race
- 似然函数(likelihood function)
- list集合根据jsonobjectvalue排序_Java之List集合两种排序的性能比较
- java 4级_《软件测试人员(Java)(4级)》【价格 目录 书评 正版】_中国图书网
- ug安装计算机用户名不能是汉字,win7系统下安装UG软件后打开提示计算机名不对怎么办...
- HTTP防病毒网关(包括UTM)存在的问题
- win10系统下载文件被windows defender smartscreen 阻止怎么办,但是系统没有筛选器
- 【校招 --阶段一 操作系统基础】进程地址空间
- python实现怼人小程序
热门文章
- 显示图片_Pycharm图片独立显示与imshow()无法显示
- 线性表_栈_逆波兰计算式(Reverse Polish Notation)
- 语义分割模型架构演进与相关论文阅读
- EKF_SLAM一般过程
- 斯坦福大学深度学习公开课cs231n学习笔记(3)最优化方法:梯度下降
- Python 之pdb调试
- 洛谷 P1420 最长连号【最长合法子序列/断则归一】
- vue -- v-cloak解决刷新或者加载出现闪烁(显示变量)
- information_schema.profiling学习
- LINUX下设置定时运行PERL脚本