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

修改Nagios的check_oracle脚本来监控Oracle的临时表空间1.前言Nagios的NagiosPlugins中有很多程序或脚本提供给我们,用于监控相应的服务、资源等等。在NagiosPlugins中有一个用于实现对Oracle数据库进行监控的脚本,叫做check_oracle,位于Nagios安装路径下的libexec目录中。check_oracle脚本可以监控Oracle数据库的cache、tns、tablespace等信息,但是通过“--tablespace”选项监控表空间时,我们发现这个脚本不能监控临时表空间。仔细查看该脚本,发现其中的确没有对临时表空间进行处理,现对该脚本做修改,使之能够监控Oracle的临时表空间。本文以Oracle10g作为实验数据库。2.分析源码和问题的解决方法查看check_oracle源码的tablespace部分,发现其对于表空间信息的获取是通过sql语句完成的。sql语句如下:selectNVL(b.free,0.0),a.total,100-trunc(NVL(b.free,0.0)/a.total*1000)/10prcfrom(selecttablespace_name,sum(bytes)/1024/1024totalfromdba_data_filesgroupbytablespace_name)ALEFTOUTERJOIN(selecttablespace_name,sum(bytes)/1024/1024freefromdba_free_spacegroupbytablespace_name)BONa.tablespace_name=b.tablespace_nameWHEREa.tablespace_name='${5}';其中${5}是表空间的名字。由于临时文件的的信息不在dba_data_files表中,所以通过上述脚本显然不能获得临时表空间的任何信息。那么如何获得临时表空间的空间使用情况呢,具体sql语句如下:selectNVL(b.free,0.0),a.total,100-trunc(NVL(b.free,0.0)/a.total*1000)/10prcfrom(selecttablespace_name,sum(bytes)/1024/1024totalfromdba_temp_filesgroupbytablespace_name)ALEFTOUTERJOIN(selecttablespace_name,sum(bytes_cached)/1024/1024freefromv\\$temp_extent_poolgroupbytablespace_name)BONa.tablespace_name=b.tablespace_nameWHEREa.tablespace_name='TEMP';这条sql语句可以获得临时表空间“TEMP”的空间使用情况。解决的方法找到了,下面我们只需将脚本做小小修改就可以达到要求了。3.check_oracle脚本的修改在check_oracle脚本中的“case”语句中增加一个“--tablespaceTEMP”分支,用于完成监---本文来源于网络,仅供参考,勿照抄,如有侵权请联系删除---控Oracle临时表空间的功能。修改后的脚本如下(修改、添加的部分已标出):#!/bin/ksh##latigid010@yahoo#01/06/2000##ThisNagiospluginwascreatedtocheckOraclestatus#PROGNAME=`basename$0`PROGPATH=`echo$0|sed-e's,[\\/][^\\/][^\\/]*$,,'`REVISION=`echo'$Revision:1749$'|sed-e's/[^0-9.]//g'`.$PROGPATH/utils.shprint_usage(){echo"Usage:"echo"$PROGNAME--tns<OracleSidorHostname/IPaddress>"echo"$PROGNAME--db<ORACLE_SID>"echo"$PROGNAME--login<ORACLE_SID>"echo"$PROGNAME--cache<ORACLE_SID><USER><PASS><CRITICAL><WARNING>"echo"$PROGNAME--tablespace<ORACLE_SID><USER><PASS><TABLESPACE><CRITICAL><WARNING>"echo"$PROGNAME--tablespaceTEMP<ORACLE_SID><USER><PASS><TABLESPACE><CRITICAL><WARNING>"echo"$PROGNAME--oranames<Hostname>"echo"$PROGNAME--help"echo"$PROGNAME--version"}print_help(){print_revision$PROGNAME$REVISIONecho""print_usageecho""echo"CheckOraclestatus"echo""echo"--tnsSID/IPAddress"echo"CheckremoteTNSserver"echo"--dbSID"echo"Checklocaldatabase(search/bin/psforPMONprocess)andcheck"echo"filesystemforsgadefORACLE_SID.dbf"echo"--loginSID"echo"AttemptadummyloginandalertifnotORA-01017:invalidusername/password"echo"--cache"echo"Checklocaldatabaseforlibraryandbuffercachehitratios"echo"--->RequiresOracleuser/passwordandSIDspecified."echo"--->Requiresselectonv_\$sysstatandv_\$librarycache"echo"--tablespace"echo"ChecklocaldatabasefortablespacecapacityinORACLE_SID"echo"--->RequiresOracleuser/passwordspecified."echo"--->Requiresselectondba_data_filesanddba_free_space"echo"--tablespaceTEMP"echo"Checklocaltemporar...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供参考,付费前请自行鉴别。
3、如文档内容存在侵犯商业秘密、侵犯著作权等,请点击“举报”。

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

客服邮箱:

biganzikefu@outlook.com

所有的文档都被视为“模板”,用于写作参考,下载前须认真查看,确认无误后再购买;

文档大部份都是可以预览的,笔杆子文库无法对文档的真实性、完整性、准确性以及专业性等问题提供审核和保证,请慎重购买;

文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为依据;

如果您还有什么不清楚的或需要我们协助,可以联系客服邮箱:

biganzikefu@outlook.com

常见问题具体如下:

1、问:已经付过费的文档可以多次下载吗?

      答:可以。登陆您已经付过费的账号,付过费的文档可以免费进行多次下载。

2、问:已经付过费的文档不知下载到什么地方去了?

     答:电脑端-浏览器下载列表里可以找到;手机端-文件管理或下载里可以找到。

            如以上两种方式都没有找到,请提供您的交易单号或截图及接收文档的邮箱等有效信息,发送到客服邮箱,客服经核实后,会将您已经付过费的文档即时发到您邮箱。

注:微信交易号是以“420000”开头的28位数字;

       支付宝交易号是以“2024XXXX”交易日期开头的28位数字。

笔杆子文秘
机构认证
内容提供者

为您提供优质文档,供您参考!

确认删除?