民航空管的ORACLE RAC数据库实时可视化监控技术

2017-03-15 11:53裘禛宇
电子技术与软件工程 2017年2期
关键词:脚本监控数据库

摘 要 本文在民航空管大数据存储背景下,提出了一种针对的Oracle RAC数据库的实时可视化监控技术。该方法支持任意Linux /Unix操作系统查询命令行指令以及SQL查询指令,通过这些指令的脚本实现了对于Oracle RAC数据库及其数据库服务器的全方位可视化监控。该方法得到的监控数据准确、实时性强、集成度高、安全性高、对二次开发具有良好的支持。该方法灵活支持各类告警,同时具有较强的数据统计分析功能,具有广泛的推广价值。

【关键词】数据库 监控 脚本

随着信息技术的不断发展,对于生产系统数据库的监控越来越重要。生产系统数据库与用户体验密切相关,对生产系统数据库系统,包括其数据库服务器的状态进行实时监控,有助于维护人员随时掌握生产系统的运行状况,及时发现存在的故障和问题,提高数据库系统可用性及性能,增加对于生产系统的保障力度。

1 传统监控方式的局限性

近年来,民航空管技术不断发展,目前正大力推进基于海量数据的协同决策管理系统、智能化管制指挥系统的研究与实现,这些新型综合信息管理应用系统接收的数据源包括一次雷达信号、二次雷达信号、广播式自动相关监视信号(ADS-B),具有数据量大,实时性强,监控要求高的特点。因此,此类信息系统对于其核心数据库的监控,需要满足实时性强、图形化、告警方式灵活、安全性高、统计功能完善、对二次开发具有良好的支持等要求。

Oracle在数据库市场占有较大的份额。且在Oracle 10g之后,RAC技术的应用越来越广泛,在民航空管信息系统中着较多应用。目前,各大设备供应商、集成商,包括Oracle公司本身都提供了支持性能分析及監控的软硬件资源。Linux、Unix操作系统自带的vmstat、iostat等实时监控工具,Oracle 10g 提供的OEM管理平台,Oracle AWR报表工具,Quest公司的Quest Central,开源监控软件cacti等等。但这些工具或多或少都有一定的局限性。

Linux、Unix操作系统自带的sar、top 、vmstat、iostat等实时性能监控工具因其提供详实、准确的信息而被广泛运用。如vmstat能提供当前运行队列、页导入、用户CPU、系统CPU 和空闲CPU等, 对于CPU问题的诊断极有价值。但这些监控方式虽然实时性强,数据详实、准确,但集成度不够,且非图形化。Oracle公司自带的OEM管理平台通常能只用于事后弥补,且对于企业级海量数据库开启该应用会造成数据库性能较明显的下降;Oracle AWR报表工具虽具有一定的前瞻性,但无法实现图形化显示,同时也不适用于实时监控。Quest Central对二次开发支持较差;cacti虽然对于二次开发支持较好,但是由于是开源软件,安全性较差。最关键的是,上述这些技术都无法对Oracle RAC及其底层集群件平台实现监控。

本文提出了一种针对Oracle RAC数据库系统的实时可视化监控技术。该方法基于Linux或Unix操作系统的命令行脚本以及SQL指令脚本,借助zoho公司监控支持模块,实现了对于Oracle RAC数据库及其数据库服务器的全方位可视化监控。该方法得到的监控数据准确、实时性强、集成度高、安全性高、对二次开发具有良好的支持。该方法能灵活支持各类告警,同时具有数据统计分析功能,具有广泛的推广价值。

2 设计与实现

2.1 系统整体设计

生产系统数据库由两台Linux或Unix服务器,其上运行Oracle RAC数据库系统。我们需要监控两台数据库服务器,即两台数据库服务器的CPU、内存、卷组、设备、接口、文件系统等状态,包括集群件的运行情况,同时也需要监控Oracle数据库,包括RAC的运行状况、数据库业务的运行情况、各表空间状态等。

上述大部分需求,如需求如集群件、卷组、文件系统、RAC、数据库业务、表空间等状态都无法通过常用的snmp方式采集。特别是集群件、RAC、数据库业务只能通过特定的查询指令采集。因此在监控服务器上,需要定时运行一组命令行脚本以及一组SQL脚本,如图1所示。通过这些脚本采集所需监控信息,其采集结果生成一组执行结果文件集。这些文件被一个数据处理进程读取,然后存放至监控数据库。最后,前台展示模块调用数据库数据,将结果通过网页方式展示到监控终端上。

当满足告警条件是,后台告警脚本被执行,后台告警脚本触发若干前台告警脚本,前台告警脚本按配置产生各类告警,如调用声音文件,或触发短信猫,或通过邮件服务器发送告警邮件。

2.2 数据处理

数据处理程序定时完成以下四项内容:

2.2.1 调用脚本

数据处理程序定时调用包括所有命令行脚本以及SQL脚本在内的所有脚本。脚本被调用后,按照事先约定的格式将脚本的执行结果存放(或更新)至执行结果文件中。

2.2.2 数据采集

数据处理程序定时读取执行结果文件并将数据存放至监控数据库。数据处理程序按事先约定的格式读取文件。数据采集一般在调用脚本之后执行,频率与调用脚本相同。

2.2.3 轮询告警

数据处理程序定时轮询所有预设的告警条件,如符合产生告警的条件,调用告警脚本产生告警。轮询告警的间隔一般与数据采集相同,在数据采集完成后执行。

2.2.4 整合数据

数据处理程序定时整合并清理监控数据库中的数据。数据采集的频率是根据实际监控的需要灵活配置的,比如5分钟一次。但在运行时间较长的情况下,如果不对定时对这些数据进行整合、清理,数据量将非常大,同时,也无法做到较好的统计分析展示。因此,需要定时整合这些采集间隔较短的数据,如每8小时,将8小时前的以5分钟为间隔的数值数据求平均值并清理,得到以一小时为间隔的小时平均数据;每7天,将7天前的以1小时为间隔的数值数据求平均值并清理,得到以一天为间隔的一天内平均数据。

2.3 功能实现

由于本方法基于脚本,因此可以监控大量普通监控方法难以监控的状态或参数。对于Oracle RAC数据库系统而言,最核心的监控需求包括数据库服务器的CPU使用率、物理内存使用率、卷组状态、设备状态、接口状态、文件系统使用率、集群件状态、RAC资源状态、数据库业务执行情况、表空间使用率等,表1说明了本文通过何种方式实现这些监控需求。

对于数值型监控值,本可视化监控技术可以通过查看其历史趋势报表,这对于掌握被监控信息系统的状态至关重要,如图2所示。图2上显示了一台数据库主机一周CPU利用率的变化情况;图2下显示了Oracle数据库某个表空间利用率最近三周的增长情况。

3 总结与讨论

本文在民航空管大數据存储背景下,提出了一种针对Oracle RAC数据库的实时可视化监控技术。该方法能够支持任意Linux或Unix操作系统查询指令以及SQL查询指令,通过包含这些指令的脚本,实现了对于Oracle RAC数据库及其数据库服务器的全方位可视化监控。该方法得到的监控数据准确、实时性强、集成度高、安全性高、对二次开发具有良好的支持,且灵活支持各类告警,同时具有数据统计分析功能,具有广泛的推广价值。

参考文献

[1]Emst B,Rasmussen H R,Schwinn U,et al.Enterprise DBA Part 1A: Architecture and Administration[Z].Oracle Corporation,1999.

[2]Quest Corporation.Quest Central for Oracle:Optimize the Oracle Database [EB / OL].(2008-01-01).http://www.quest.com/quest_central-for oracle.

[3]Smith P G,Baker P M.A web 2.0 user interface for wide-area resource monitoring[C]//The 15th ACM Mardi Gras Conference.New York:ACM,2008:1-8.

[4]辛茗庭.基于Linux 平台的流量统计与异常检测系统的设计与实现[D].上海:上海交通大学,2008.

[5]Gibbs M.Groundwork monitor:Serious net mgmt[J].Network World,2008,25(28).

作者简介

裘禛宇,现为中国民用航空华东地区空中交通管理局工程师。

作者单位

中国民用航空华东地区空中交通管理局 上海市 200335

猜你喜欢
脚本监控数据库
酒驾
The Great Barrier Reef shows coral comeback
你被监控了吗?
Zabbix在ATS系统集中监控中的应用
数据库系统shell脚本应用
快乐假期
PDCA循环法在多重耐药菌感染监控中的应用