郭大偉
摘 要 oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)主要用于企業(yè)對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)性能的監(jiān)控,系統(tǒng)可以對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的性能進(jìn)行實(shí)時(shí)采集和分析,形成相應(yīng)的圖表,并對(duì)數(shù)據(jù)庫(kù)異常及時(shí)發(fā)出報(bào)警,可以有效地提高數(shù)據(jù)庫(kù)的穩(wěn)定性和綜合性能,減少數(shù)據(jù)庫(kù)故障的發(fā)生。
關(guān)鍵詞 oracle;監(jiān)控和分析;設(shè)計(jì)
前言
隨著信息化技術(shù)的推廣,各種信息系統(tǒng)和應(yīng)用系統(tǒng)不斷涌現(xiàn),數(shù)據(jù)庫(kù)技術(shù)隨之得到廣泛應(yīng)用。數(shù)據(jù)庫(kù)作為應(yīng)用系統(tǒng)的后臺(tái)數(shù)據(jù)存儲(chǔ)單元,其穩(wěn)定性和安全性嚴(yán)重地影響著系統(tǒng)的穩(wěn)定、安全和效率。但由于大型數(shù)據(jù)庫(kù)結(jié)構(gòu)復(fù)雜,專業(yè)性強(qiáng),對(duì)其性能監(jiān)控和分析存在著較大困難,故需要使用專業(yè)的軟件工具對(duì)其進(jìn)行性能分析和監(jiān)控。目前廣泛使用的數(shù)據(jù)庫(kù)工具分為管理工具和監(jiān)控工具兩大類,這些工具都存在著功能單一、專業(yè)性較強(qiáng)、兼容性較差與服務(wù)器等硬件嚴(yán)重依賴等問(wèn)題,因此迫切需要開發(fā)一種基于網(wǎng)絡(luò)技術(shù),具有較好兼容性、擴(kuò)展性、界面友好的數(shù)據(jù)庫(kù)管理工具。
1 系統(tǒng)功能簡(jiǎn)述
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)主要用于遠(yuǎn)程oracle數(shù)據(jù)庫(kù)性能的監(jiān)控和分析,系統(tǒng)可以對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的性能進(jìn)行實(shí)時(shí)采集和分析,形成相應(yīng)的圖表,并對(duì)數(shù)據(jù)庫(kù)異常及時(shí)發(fā)出報(bào)警,可以有效地提高數(shù)據(jù)庫(kù)的穩(wěn)定性和綜合性能,減少數(shù)據(jù)庫(kù)故障的發(fā)生[1]。
2 oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)的主要技術(shù)特點(diǎn)
2.1 基于網(wǎng)絡(luò)技術(shù)實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)庫(kù)性能數(shù)據(jù)的實(shí)時(shí)采集
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)可以通過(guò)網(wǎng)絡(luò)直接連接遠(yuǎn)程數(shù)據(jù)庫(kù),無(wú)須在數(shù)據(jù)庫(kù)端安裝插件,減少因安裝插件對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)性能的影響;本系統(tǒng)采用數(shù)據(jù)庫(kù)性能參數(shù)全表影射方式進(jìn)行參數(shù)采集,有效地避免數(shù)據(jù)采集對(duì)數(shù)據(jù)庫(kù)運(yùn)行速度的影響。
2.2 可實(shí)現(xiàn)性能數(shù)據(jù)的動(dòng)態(tài)分析和實(shí)時(shí)報(bào)警
本系統(tǒng)對(duì)實(shí)時(shí)采集的性能數(shù)據(jù)進(jìn)行自動(dòng)分析,并生成數(shù)據(jù)庫(kù)性能指標(biāo)參數(shù),并生成相應(yīng)的變化曲線,可以有效地顯示系統(tǒng)的變化趨勢(shì)。本系統(tǒng)對(duì)關(guān)鍵的性能參數(shù)進(jìn)行監(jiān)控,當(dāng)其超出預(yù)設(shè)警戒值時(shí),系統(tǒng)將自動(dòng)發(fā)出報(bào)警。
2.3 使用數(shù)據(jù)優(yōu)化算法提高系統(tǒng)數(shù)據(jù)處理能力和響應(yīng)速度
本系統(tǒng)實(shí)時(shí)采集和分析數(shù)據(jù)庫(kù)性能數(shù)據(jù),要求時(shí)間間隔短,采集數(shù)據(jù)量大,嚴(yán)重影響系統(tǒng)的運(yùn)行速度和效率,因此在設(shè)計(jì)中采用分步式數(shù)據(jù)處理方式,首先進(jìn)行實(shí)時(shí)數(shù)據(jù)的處理,將處理結(jié)果存入實(shí)時(shí)數(shù)據(jù)存儲(chǔ)單元;第二步進(jìn)行短期歷史數(shù)據(jù)轉(zhuǎn)存,將短期歷史數(shù)據(jù)存入歷史數(shù)據(jù)存儲(chǔ)單元;最后進(jìn)行長(zhǎng)期歷史數(shù)據(jù)的處理和轉(zhuǎn)存,將設(shè)定期限內(nèi)的長(zhǎng)期歷史數(shù)據(jù)進(jìn)行處理,選出波動(dòng)較大的特征數(shù)據(jù),并將其存儲(chǔ)到歷史數(shù)據(jù)存儲(chǔ)單元,并將無(wú)效數(shù)據(jù)刪除,采用以上的處理方式有效地提高了數(shù)據(jù)處理速度和運(yùn)行效率[2]。
3 oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)組成結(jié)構(gòu)
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)主要包括實(shí)時(shí)采集模塊、實(shí)時(shí)數(shù)據(jù)庫(kù)、數(shù)據(jù)分析與處理模塊、數(shù)據(jù)存儲(chǔ)模塊和用戶界面等幾個(gè)模塊組成。
實(shí)時(shí)采集模塊主要用于對(duì)目標(biāo)數(shù)據(jù)庫(kù)進(jìn)行實(shí)時(shí)數(shù)據(jù)采集,其可實(shí)現(xiàn)對(duì)目標(biāo)數(shù)據(jù)庫(kù)參數(shù)的定時(shí)采集和發(fā)送。實(shí)時(shí)數(shù)據(jù)庫(kù)主要用于存儲(chǔ)實(shí)時(shí)采集模塊采集的實(shí)時(shí)數(shù)據(jù)。數(shù)據(jù)分析與處理模塊主要用于對(duì)實(shí)時(shí)數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行處理和分析,并將數(shù)據(jù)轉(zhuǎn)存入數(shù)據(jù)存儲(chǔ)模塊。數(shù)據(jù)存儲(chǔ)模塊主要用于存儲(chǔ)歷史數(shù)據(jù)和處理后的實(shí)時(shí)數(shù)據(jù)。
4 數(shù)據(jù)分析與處理的主要流程
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)完成數(shù)據(jù)實(shí)時(shí)采集后,自動(dòng)將參數(shù)數(shù)據(jù)傳入數(shù)據(jù)分析與處理模塊,數(shù)據(jù)預(yù)處理程序會(huì)根據(jù)設(shè)定將主要的監(jiān)控報(bào)警參數(shù)篩選出來(lái),并將所有數(shù)據(jù)通過(guò)數(shù)據(jù)轉(zhuǎn)存程序存入數(shù)據(jù)庫(kù)。經(jīng)過(guò)數(shù)據(jù)預(yù)處理程序篩選出來(lái)的數(shù)據(jù),進(jìn)入極限與警戒值對(duì)比程序,與設(shè)定值進(jìn)行對(duì)比,如果出現(xiàn)參數(shù)異常,則立即觸發(fā)報(bào)警程序,并在用戶界面顯示和發(fā)出聲音。
5 oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)主要用戶界面
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)的用戶界面包含參數(shù)記錄、分析、展示和報(bào)警等多種功能,主要的用戶界面有:
5.1 主界面
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)開發(fā)過(guò)程中使用了WPF技術(shù)開發(fā)用戶界面,其間根據(jù)需求開發(fā)了大量的自定義按鈕。主界面中集成了各個(gè)分界面的進(jìn)入按鈕,同在界面右側(cè)放置了主要報(bào)警事件的顯示控件。
5.2 SQL語(yǔ)句性能分析界面
本畫面主要用于監(jiān)控遠(yuǎn)程數(shù)據(jù)庫(kù)的sql語(yǔ)句執(zhí)行情況,程序?qū)⒅饕阅軈?shù)記錄到本地?cái)?shù)據(jù)庫(kù),后臺(tái)的分析程序自動(dòng)分析sql語(yǔ)句的執(zhí)行效果,并將執(zhí)行時(shí)間和耗費(fèi)資源過(guò)多的sql語(yǔ)句記錄下來(lái),并存儲(chǔ)到數(shù)據(jù)庫(kù)中,并在畫面上顯示出來(lái)。
5.3 I/O性能監(jiān)控界面
此界面可以監(jiān)控到遠(yuǎn)程數(shù)據(jù)庫(kù)的I/O性能,并通過(guò)圖表的形式展現(xiàn)出來(lái),使用者還可以通過(guò)操作查看8小時(shí)、24小時(shí)、1周和一個(gè)月內(nèi)的數(shù)據(jù)變化情況。
5.4 表空間監(jiān)控界面
此界面用于監(jiān)控?cái)?shù)據(jù)庫(kù)表空間變化情況,并對(duì)變化情況進(jìn)行檢查,當(dāng)表空間剩余量超過(guò)報(bào)警限值后,后臺(tái)程序自動(dòng)開啟聲音報(bào)警,并在主界面上更新報(bào)警信息。此模塊的幾面上使用了3D圖表控件,可實(shí)現(xiàn)表空間剩余量的顯示。
5.5 數(shù)據(jù)庫(kù)連接數(shù)監(jiān)控界面
此畫面可監(jiān)控?cái)?shù)據(jù)庫(kù)的連接數(shù),并將其記錄在數(shù)據(jù)庫(kù)中,當(dāng)連接數(shù)超過(guò)設(shè)計(jì)最大限值時(shí),后臺(tái)程序會(huì)自動(dòng)開啟聲音報(bào)警。使用者可在此界面上可查詢數(shù)據(jù)庫(kù)連接數(shù)8小時(shí)、24小時(shí)、1周和一個(gè)月內(nèi)的歷史數(shù)據(jù)。
5.6 數(shù)據(jù)庫(kù)鎖表情況監(jiān)控界面
此界面主要用于顯示數(shù)據(jù)庫(kù)鎖表情況,當(dāng)數(shù)據(jù)庫(kù)出現(xiàn)鎖表情況時(shí),后臺(tái)程序會(huì)自動(dòng)觸發(fā)聲音報(bào)警,鎖表相關(guān)參數(shù)記錄到數(shù)據(jù)庫(kù)中。
5.7 報(bào)警事件查詢界面
此界面用于查詢到遠(yuǎn)程數(shù)據(jù)庫(kù)所有的報(bào)警信息,使用者可以通過(guò)此界面查詢出8小時(shí)、24小時(shí)、1周和一個(gè)月內(nèi)目標(biāo)數(shù)據(jù)庫(kù)的報(bào)警信息。
6 結(jié)束語(yǔ)
oracle數(shù)據(jù)庫(kù)性能監(jiān)控和分析系統(tǒng)可以實(shí)現(xiàn)對(duì)遠(yuǎn)程數(shù)據(jù)庫(kù)的性能進(jìn)行實(shí)時(shí)采集和分析,并對(duì)數(shù)據(jù)庫(kù)主要性能參數(shù)進(jìn)行實(shí)時(shí)監(jiān)控,并在發(fā)現(xiàn)異常的情況下及時(shí)發(fā)出報(bào)警,系統(tǒng)同時(shí)可以對(duì)數(shù)據(jù)庫(kù)性能參數(shù)進(jìn)行圖形化顯示,有助于進(jìn)一步分析數(shù)據(jù)庫(kù)性能,進(jìn)一步減少數(shù)據(jù)庫(kù)故障的發(fā)生,有效地提高了數(shù)據(jù)庫(kù)的穩(wěn)定性和綜合性能。
參考文獻(xiàn)
[1] 王娜,宿紅毅,白琳,等.數(shù)據(jù)庫(kù)性能監(jiān)控分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程,2005,31(24):105-107.
[2] 蔣林華.基于Oracle數(shù)據(jù)庫(kù)優(yōu)化性能監(jiān)控系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].井岡山大學(xué)學(xué)報(bào),2012,33(2):68-71.