oracle alert 监控,监控表空间、alert.log日志文件

现在所有业务系统上面都部署了各种类型针对各方面的监控,那么咱们也不例外,也需要做关于oracle方面的监控,比如实例的存活状况,监听器的存活状况,系统的运行情况(包括,磁盘使用率,进程数,登陆系统用户数,系统负载情况,各类型表空间的使用率等等)基于系统运行情况的监控软件很多,比如nagios之类的,在此就不做使用和监控方法。但是要监控oracle实例的运行情况,就得一直观察oracle的告警日志,那么我们可以通过使用脚本来监控oracle实例的运行情况,当告警日志中出现ORA错误时,立即将告警日志中的错误信息提取使用邮件和短信的方式发送给咱们DBA工程师。至于表空间的监控,由于需要了解表空间的使用率,必须使用sql语句查询来看,仅仅依靠脚本是不够的,那么我们就可以通过脚本+sql语句来监控oracle的表空间。下面我分别说下监控oracle告警日志和表空间的方法。

监控oracle告警日志的方法:

1.创建profile文件。

vim /etc/oracle.profile

#######################################################################

## oracle.profile ##

#######################################################################

EDITOR=vi;export EDITOR

ORACLE_BASE=/u01/app/oracle; export

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1; export

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib64:/usr/lib64; export

LD_LIBRARY_PATH TNS_ADMIN=$ORACLE_HOME/network/admin;export

TNS_ADMIN NLS_LANG='American_China.ZHS16GBK'; export

NLS_LANG NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; export

NLS_DATE_FORMAT RATAB=/etc/oratab;export

#ORATAB PATH=$PATH:$ORACLE_HOME:$ORACLE_HOME/bin:/usr/ccs/bin:/bin:/usr/bin:/usr/sbin:/

#sbin:/usr/openwin/bin:/opt/bin:.; export

PATH=$ORACLE_HOME/bin:$PATH:$HOME/bin

DBALIST="xujinhua@uniits.com,xujinhua@cbc.cn";export DBALIST

2. 编写检查oracle alter日志脚本(oracle用户)

#!/bin/ksh

source /etc/oracle.profile

#for SID in `cat $ORACLE_HOME/sidlist`

for SID in 'orcl'

do

cd /u01/app/oracle/diag/rdbms/orcl/orcl/trace

if [ -f alert_${SID}.log ]

then

mv alert_${SID}.log alert_work.log

touch alert_${SID}.log

cat alert_work.log >> alert_${SID}.hist

grep ORA- alert_work.log > alert.err

fi

if [ `cat alert.err|wc -l` -gt 0 ]

then

mailx -s "mobile-testdb${SID} ORACLE ALERT ERRORS" $DBALIST < alert.err

fi

rm -f alert.err

rm -f alert_work.log

done

3.oracle用户下使用crontab定期运行检查oracle alter日志的脚本,即可。

监控表空间的方法:

由于现在表空间都使用自动扩展模式,在规划数据库的时候,都是根据业务一段时间运行的数据量作参考规划数据文件的大小,从而决定数据文件的个数以及初始每个数据文件的初始大小和每次扩展的大小。那么咱们要监控表空间的利用率是没意义的,因为运行数据增长一段时间就会达到初始设置的大小,此时就会触发报警表空间不足,但是事实上它会自动扩展。但是也不能说就不监控了,咱们可以定期了解表空间的使用情况,看跟咱们预估的数据文件的大小有多少,这样也能起到监控表空间的效果。 【Linux公社 】

1)编写如下脚本:

[root@woodpecker oracle]# cat tbs_monitor.sh

#!/bin/sh

#this is a script. of monitor

#login

su - oracle -c "sqlplus / as sysdba"

exit;

EOF

#out

export ORACLE_SID=orcl

export TODAY=`date '+%Y%m%d'`

MONITOR=monitor$TODAY.lst

#mail for user

mail -s "$ORACLE_SID TABLESPACE $MONITOR" xujinhua@uniits.com < $MONITOR -- -f xujinhua@uniits.com

2)编写如下sql:

[root@woodpecker oracle]# cat /home/oracle/tb_check/spool.sql

spool on;

set echo off

set feedback off;

set termout off;

set heading on;

set term off

column dat new_value date;

select to_char(sysdate,'yyyymmdd') dat from dual;

spool monitor&&date;

set linesize 80;

select d.tablespace_name,space sum_space,

space-nvl(free_space,0) used_space,

round((1-nvl(free_space,0)/space)*100,2) used_rate,

free_space free_space

from (select tablespace_name,

round(sum(bytes)/(1024*1024),2) space,

sum(blocks) blocks

from dba_data_files

group by tablespace_name) d,

(select tablespace_name,

round(sum(bytes)/(1024*1024),2) free_space

from dba_free_space

group by tablespace_name) f

where d.tablespace_name = f.tablespace_name(+);

spool off;

exit;

3)通过系统的crontab定时每天调度一次脚本即可每天告诉给dba数据库的所有表空间的使用情况。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值