一则orabbix报警的分析(第一篇)

最近使用zabbix监控之后,都会在凌晨收到1台数据库服务器的报警短信,报警的内容为: No data received from Orabbix
这个错误其实就是orabbix通过jdbc已经接受不到数据库实例的信息了,但是隔了10来分钟之后,又会收到问题恢复的短信。
既然问题已经自动修复了,可能在那个时间段里有一些固定的操作,操作完成之后,数据库实例的负载就自动恢复了。
可以从监控DB time的趋势图中看出一些端倪。

根据提示的信息查看了问题时间段的awr和对应ash报告。
先来看awr报告,这个报告中的等待时间主要就是control file sequential read,占到了大概65%的比例。

Event Waits Time(s) Avg wait (ms) % DB time Wait Class
control file sequential read 628,810 3,843 6 65.33 System I/O
DB CPU   847   14.40  
db file sequential read 90,656 314 3 5.34 User I/O
log file sync 2,572 297 116 5.06 Commit

而查看ash报告,对这个等待事件进一步解读发现对应的file#为0

Event % Event P1, P2 , P3  % Activity Parameter 1 Parameter 2 Parameter 3
control file sequential read 38.21 "0","1","1" 6.14 file# block# blocks
"0","17","1" 3.41
file#

block#

blocks
"0","18","1" 2.71
file#

block#

blocks

对于这个等待事件的主要原因还是对于基表的大量访问,同时会有大量的控制文件读写。
然后进一步抓取top sql,可以看到存在两个查询语句。

Elapsed Time (s) Executions  per Exec (s) %Total %CPU %IO SQL Id SQL Module SQL Text
1,789.17 30 59.64 30.42 0.74 8.18 92t2p1mb77fd2 JDBC Thin Client SELECT * FROM ( select '- Tabl...
1,745.27 35 49.86 29.67 0.92 5.01 fhud2jfjwy64g JDBC Thin Client SELECT to_char(sum( NVL(a.byte...

我们贴出其中一条。可以看出这一条是在查询资源的使用情况。
SELECT to_char(sum( NVL(a.bytes/1024/1024 - NVL(f.bytes/1024/1024, 0), 0)), 'FM99999999999999990') retvalue FROM sys.dba_tablespaces d, (select tablespace_name, sum(bytes) bytes from dba_data_files group by tablespace_name) a, (select tablespace_name, sum(bytes) bytes from dba_free_space group by tablespace_name) f WHERE d.tablespace_name = a.tablespace_name(+) AND d.tablespace_name = f.tablespace_name(+) AND NOT (d.extent_management like 'LOCAL' AND d.contents like 'TEMPORARY') 
对于这个语句还是有一些印象,这是因为在orabbix默认提供的监控项中还是有这么一个sql语句的。
看来orabbix监控的时候,默认提供的语句就把自己给弄糊涂了。
仔细查看这个语句,里面存在大量的基表数据访问。为什么其它的库没有报这种问题,而这个库报了呢,一个原因就是这个库的数据文件比较多,大概有900多个,在平时运行的时候就有些慢了,其它的库相对数据文件要少很多,所以这方面的隐患就小很多。
所以这个问题到目前为止,发现这样两个orabbix默认提供的监控sql还是存在一定的隐患,可以后续改进,但是问题至少需要缓解吧。
从上面的图表可以看到,这两条语句在一个小时内基本运行了30次左右,也就是2分钟一次。
如果从orabbix的配置来看,执行频率确实是2分钟一次。
dbsize.Perod=2
dbfilesize.Period=2
所以在执行的过程中,下次发起请求的时候上次的结果还没有返回,就有了orabbix的报警。
对于这个问题,先暂时缓解,后续进行改进,我们可以尝试调大这个执行频率,比如几个小时执行一次,因为数据文件的使用情况的监控也不需要精确到分钟去详细统计,只需要得到一个大概的增长情况即可。
所以这样改进之后,后续持续改进这个监控项会有一定的提升。
通过这个案例我们可以看到如果监控工具本身的监控语句就不够优化,结果造成了性能隐患还是比较尴尬的,还是需要借鉴它的思想,持续改进。
末尾还有个问题就是,既然这个语句相对执行较慢,为什么平时不报警告,而在特定的时间点会报警呢,下一篇中会进行进一步的分析。

时间: 2024-10-23 18:22:37

一则orabbix报警的分析(第一篇)的相关文章

android emulator虚拟设备分析第一篇之battery

一.概述 本文使用的android版本是5.1.0_r1,goldfish内核版本是3.4,android镜像是x86架构的.本文以battery为例,完整地介绍了虚拟设备的实现和使用. 为什么android emulator需要虚拟设备,简单来说就是android系统需要使用,但是host系统却没有,比如gps,bluetooth,battery,gsm等.另外,虚拟设备也提供了android emulator和guest os之间交流的方式,比如emulator控制面板中可以设置电池的电量,

《Hadoop与大数据挖掘》——第一篇 基 础 篇 第1章 浅谈大数据 1.1 大数据概述

第一篇 基 础 篇 第1章 浅谈大数据 当你早上起床,拿起牙刷刷牙,你是否会想到从拿起牙刷到刷完牙的整个过程中有多少细胞参与其中?这些细胞在参与的过程中会结合周围环境(可能是宏观的天气.温度.气压等,可能是微观的分子.空气中的微生物等),由你的意识控制而产生不同的反映.如果我说结合这些所有的信息,可以预测你接下来的0.000 000 01秒的动作,那么,你肯定说,这我也可以预测呀.比如正常情况下,你脚抬起来走路,那么抬起来后,肯定是要落下去的,这算哪门子预测呢?那如果我说可以预测你接下来一个小时

《C语言解惑》—— 第一篇 C语言编程中的对与错

第一篇 C语言编程中的对与错 本篇主要采用分析编程中存在的典型错误.对比正确与错误程序的方法,使读者加深印象并提高分辨语法对错及编程的能力,进而达到尽快掌握C语言编程基础知识的目的.

ASP基础入门第一篇(ASP技术简介)_应用技巧

本文将以如何建立基于IIS 的ASP 动态网站为中心向大家一步一步地揭示动态商业网站设计的真正奥秘.为了使各位能够全面.细致地掌握 ASP 的开发技巧,本文今后将采取连载的形式,手把手地教你如何建立属于自己 ASP 动态网站.由于本文是作者根据自己的学习和实践经验并结合了一些外文资料而写成的,因此不免会有一些偏颇,希望各位见谅. Microsoft Active Server Pages 即我们所称的ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之

《数据库技术原理与应用教程(第2版)》——第一篇 基础篇 第1章 数据、数据管理与数据处理 1.1 概述

第一篇 基础篇 数据库技术是计算机学科中的一门重要分支,它已有五十余年历史并已成为一门完整的学科,其主要内容包括基础理论.基本操作及开发应用等. 数据库技术的基础理论部分是构成该学科的基石,它给出了该学科的抽象的.全局的研究结果并对整个学科起指导性作用. 在本书中,基础部分由两方面内容组成,它们是数据库技术的一般性理论和关系数据库技术的理论. 1.数据库技术的一般性理论 第1~3章介绍数据库技术的一般性理论.其中第1章介绍有关数据.数据管理与数据处理的一般性概念:第2章介绍数据库技术中的基础知识

linux0.11内核源码剖析:第一篇 内存管理、memory.c【转】

转自:http://www.cnblogs.com/v-July-v/archive/2011/01/06/1983695.html linux0.11内核源码剖析第一篇:memory.c   July  二零一一年一月六日 ----------------------------------------- 博主声明:1.本系列非linux系统教程,仅仅是针对linux0.11内核源码,所做的剖析,注释.2.本系列参考:深入理解linux内核.linux内核完全注释,linux内核源代码情景分析

如何提高WEB程序的效率 (第一篇SQL篇)  (转)

web|程序 如何提高WEB程序的效率 (第一篇"SQL篇") 很多网友非常不喜欢用ASP来编程,他们总是抱怨说ASP程序太慢,效率太低.更希望用PHP,JSP等来写程序.其实不能从 "认为" 这个角度来看问题 ,而应该从实际中看问题,ASP真的很慢的吗,那么微软的站为何用ASP也不慢呢?PHP真的很快吗,其实它也仍然是解释性的语言.只不过在Linux下的结合比较好而以.JSP的开发也不会简单到何处,而且要通过JDBC-ODBC桥才能连接ACCESS库等,这种情况下

如何提高WEB程序的效率 (第一篇)

web|程序 很多网友非常不喜欢用ASP来编程,他们总是抱怨说ASP程序太慢,效率太低.更希望用PHP,JSP等来写程序.其实不能从 "认为" 这个角度来看问题 ,而应该从实际中看问题,ASP真的很慢的吗,那么微软的站为何用ASP也不慢呢?PHP真的很快吗,其实它也仍然是解释性的语言.只不过在Linux下的结合比较好而以.JSP的开发也不会简单到何处,而且要通过JDBC-ODBC桥才能连接ACCESS库等,这种情况下效率也不高. 其实,三种语言各有特点,就是优,缺点.作为一个程序员不应

CoreOS Fest 系列之第一篇:容器江湖

本文讲的是CoreOS Fest 系列之第一篇:容器江湖,[编者的话] 这是总结 CoreOS Fest 大会的三篇文章之一,主要介绍了 CoreOS 公司与 Docker 公司之争,新成立的 appc 规范委员会, Tectonic 平台, Kubernetes 项目. 最近在旧金山, Linux 容器已经显得非常有「钱」景,看起来每个人都想从这个有几十亿美金规模的新市场中分得一杯羹.多家创业公司和云主机公司已经或者即将召开有关容器的大会,包括 4 月 17 日召开的 Container Ca