orabbix插件监控oracle表空间问题

我们安装好orabbix插件后,查看Tablespaces监控项是发项值为none,第一反应是没监控成功,其实不然。

1、我们打开orabbix监控项参数的路径,下面为Tablespaces的sql代码

[[email protected] ~]# vim /opt/orabbix/conf/query.props

select ‘- Tablespace ->‘,t.tablespace_name ktablespace,        ‘- Type->‘,substr(t.contents, 1, 1) tipo,        ‘- Used(MB)->‘,trunc((d.tbs_size-nvl(s.free_space, 0))/1024/1024) ktbs_em_uso,        ‘- ActualSize(MB)->‘,trunc(d.tbs_size/1024/1024) ktbs_size,        ‘- MaxSize(MB)->‘,trunc(d.tbs_maxsize/1024/1024) ktbs_maxsize,        ‘- FreeSpace(MB)->‘,trunc(nvl(s.free_space, 0)/1024/1024) kfree_space,        ‘- Space->‘,trunc((d.tbs_maxsize - d.tbs_size + nvl(s.free_space, 0))/1024/1024) kspace,        ‘- Perc->‘,decode(d.tbs_maxsize, 0, 0, trunc((d.tbs_size-nvl(s.free_space, 0))*100/d.tbs_maxsize)) kperc from   ( select SUM(bytes) tbs_size,            SUM(decode(sign(maxbytes - bytes), -1, bytes, maxbytes)) tbs_maxsize, tablespace_name tablespace     from ( select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes, tablespace_name     from dba_data_files     union all     select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes, tablespace_name     from dba_temp_files     )     group by tablespace_name     ) d,     ( select SUM(bytes) free_space,     tablespace_name tablespace     from dba_free_space     group by tablespace_name     ) s,     dba_tablespaces t     where t.tablespace_name = d.tablespace(+) and     t.tablespace_name = s.tablespace(+)     order by 8)     where kperc > 93     and tipo <>‘T‘     and tipo <>‘U‘
tbl_space.NoDataFound=none

这个SQL会返回93%满的表空间信息,而对应这个监控项,orabbix也定义了触发器,因为监控项的返回值是文本,而没有满足条件的记录时返回字符串“none“,所以监控项对应的触发器会检查返回值开头是不是none,如果不是,就报警,这样,用户除了收到预警信息,还能从返回值的具体值中看到具体时哪个表空间快满了。

改为3%后测试结果:

当然,大部分时间监控项会返回none,所以我们无法画出正常未满的表空间的空间占用时间曲线。只有超过93%慢时,我们才知道具体的占用情况。

如果想收集并保留更多信息,就需要使用自定义查询,方法就是在query.props文件中加入你想检查的SQL,比如我们想了解表空间信息,就加以下SQL:

customtbl.Query=select ‘TBL:‘||a.tablespace_name||‘,‘ TBL,
‘Total Size:‘||trunc(sum(a.tots) / 1024 / 1024, 2)||‘,‘ Tot_Size_mb,
‘Free MB:‘||round(sum(a.sumb) / 1024 / 1024, 2)||‘,‘ Tot_Free_mb,
‘PCT Free:‘||round(sum(a.sumb) * 100 / sum(a.tots), 2)||‘,‘ Pct_Free,
‘Max Free MB:‘||round(sum(a.largest) / 1024 / 1024, 2)||‘,‘ Max_Free_mb,
‘Chunks Free:‘||sum(a.chunks)||‘,‘ Chunks_Free
from (select tablespace_name,
0 tots,
sum(bytes) sumb,
max(bytes) largest,
count(*) chunks
from dba_free_space a
group by tablespace_name
union
select tablespace_name, sum(bytes) tots, 0, 0, 0
from dba_data_files
group by tablespace_name) a
group by a.tablespace_name

customtbl.NoDataFound=none

原文地址:https://www.cnblogs.com/Dev0ps/p/8891743.html

时间: 2024-10-12 11:59:57

orabbix插件监控oracle表空间问题的相关文章

zabbix通过orabbix插件监控oracle

什么是orabbix? Orabbix是设计用来为zabbix监控Oracle数据库的插件,它提供多层次的监控,包括可用性和服务器性能指标.       它提供了从众多Oracle实例采集数据的有效机制,进而提供此信息的监控和性能指标.然后,您可以利用的zabbix的报告功能为收集的所有数据,并提供分析.目前的发行版中包含了一组预先定义的模板,包括从初始部署警报和图形功能.然而,这些可以进行微调,以满足您的需求和数据/监控要求. 它能监控什么? 数据库版本 归档日志与生产趋势分析 触发器,表/过

Nagios监控Oracle表空间出现Cannot determine ORACLE_HOME报错

在使用Nagios监控软件时,监控Oracle表空间使用率,遇到了如下错误: 表名监控状态是:UNKNOWN错误信息是:Cannot determine ORACLE_HOME for sid dbnms 由于我是使用root用户启动的nagios,也是用root执行的check_oracle插件的命令.所以首先分析的是环境变量的问题,然后我修改了root目录下的.bash_profile文件中的环境变量,如下: 但是还是出现了上面的错误. 然后我就直接more了下check_oracle插件的

Orabbix 监控oracle表空间 Low Level Discovery

在被监控端创建脚本,此脚本用于获取表空间及空间使用信息,此脚本由oracle用户下创建 vim mornitor_tbs.sh #!/bin/bash source /home/oracle/.bash_profile sqlplus -s zabbix/zabbix > /tmp/tablespace.log<<EOF set linesize 140 pagesize 10000 col "Status" for a10 col "Name" 

Zabbix利用orabbix插件监控Oracle数据库(增强版)

按照网上的一些资料进行安装最后发现问题挺多的,于是自己修复了一些问题便记录了下来. 一.jdk的安装(Orabbix Server) 1.软件解压,放到固定位置 tar zxf jdk-8u51-linux-x64.tar.gz mv jdk1.8.0_51/ /usr/local/ 2.设置系统变量,编辑/etc/profile在末尾增加 export JAVA_HOME=/usr/local/jdk1.8.0_51 exportCLASSPATH=$JAVA_HOME/lib/dt.jar:

zabbix自动发现oracle表空间并监控其使用率

监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创建表空间时可以根据应用需求指定是否开启表空间自动扩展.那么在这里我们需要分析一个监控策略,就是当zabbix监控到某个表空间使用率达到95%,那么就让触发器触发警告(Warning)信息,并发送邮件给DBA或管理者.当检测到表空间没有开启自动扩展时,则触发Information信息.说明一下:ora

Oracle表空间

Oracle表空间,布布扣,bubuko.com

【Oracle 常用查询】oracle表空间使用率统计查询

参考1 --查询表空间使用情况 SELECT Upper(F.TABLESPACE_NAME) "表空间名", D.TOT_GROOTTE_MB "表空间大小(M)", D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)", To_char(Round(( D.TOT_GROOTTE_MB - F.TOTAL_BYTES ) / D.TOT_GROOTTE_MB * 100, 2), '990.99') || '

44.oracle表空间的使用

要给下属充分的发挥空间,要允许下属犯错,下属犯错自己能顶下来就顶着,不要盯得让下属觉得"这不是我的事,我只是个小打工的",团建要放在首位.不可在下属面前"装B",别人也不傻. Oracle数据库开创性地提出了表空间的设计理念,这为Oracle数据库的高性能做出了不可磨灭的贡献.可以这么说,Oracle中很多优化都是基于表空间的设计理念而实现的. ORACLE数据库被划分成称作为表空间[1]  的逻辑区域--形成ORACLE数据库的逻辑结构.一个ORACLE数据库能够

Oracle表空间,用户,用户授权

一:Oracle表空间 1,Oracle表空间与SQL Server文件组对比 SQL Server的文件组(文件组包括若干MDF,NDF数据文件)对我们来说并不陌生,前段时间我在博客"怎样玩转千万级别的数据"提到了过表分区的概念,其实表分区说到本质上就是按一定条件把不同数据放在不同的数据文件里,这些数据文件在物理上是相对独立的,在逻辑上又是一个整体.特别强调一下,在SQL Server中,建表时是默认把所有的表都保存在PRIMARY默认文件组 ,当数据库中表很多,并且数据量很大时,会