?

民航空管的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循環法在多重耐藥菌感染監控中的應用
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合