oracle check更改,修改Nagios的check_oracle脚本来监控Oracle的临时表空间

修改Nagios的check_oracle脚本来监控Oracle的临时表空间

1.前言

Nagios的Nagios Plugins中有很多程序或脚本提供给我们,用于监控相应的服务、资源等等。在Nagios Plugins中有一个用于实现对Oracle数据库进行监控的脚本,叫做check_oracle,位于Nagios安装路径下的libexec目录中。

check_oracle脚本可以监控Oracle数据库的cache、tns、tablespace等信息,但是通过“--tablespace”选项监控表空间时,我们发现这个脚本不能监控临时表空间。仔细查看该脚本,发现其中的确没有对临时表空间进行处理,现对该脚本做修改,使之能够监控Oracle的临时表空间。本文以Oracle10g作为实验数据库。

2.分析源码和问题的解决方法

查看check_oracle源码的tablespace部分,发现其对于表空间信息的获取是通过sql 语句完成的。sql语句如下:

select NVL(b.free,0.0),a.total,100 - trunc(NVL(b.free,0.0)/a.total * 1000) / 10 prc

from

(select tablespace_name,sum(bytes)/1024/1024 total

from dba_data_files group by tablespace_name) A

LEFT OUTER JOIN

(select tablespace_name,sum(bytes)/1024/1024 free

from dba_free_space group by tablespace_name) B

ON a.tablespace_name=b.tablespace_name

WHERE a.tablespace_name='${5}';

其中${5}是表空间的名字。

由于临时文件的的信息不在dba_data_files表中,所以通过上述脚本显然不能获得临时表空间的任何信息。

那么如何获得临时表空间的空间使用情况呢,具体sql语句如下:

efb125a654fbaec3ebf4b0bcc0db8e8f.png

这条sql语句可以获得临时表空间“TEMP”的空间使用情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值