本發(fā)明涉及一種oracle數(shù)據(jù)庫(kù)體檢系統(tǒng),尤其涉及一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng)。
背景技術(shù):
數(shù)據(jù)庫(kù)日常巡檢是運(yùn)維人員經(jīng)常需要維護(hù)的工作之一。隨著業(yè)務(wù)需求越來越復(fù)雜以及數(shù)據(jù)量的爆發(fā)式增長(zhǎng),給數(shù)據(jù)庫(kù)服務(wù)器帶來很大的壓力,也給維護(hù)人員工作增加許多壓力和工作量。使用常規(guī)手段顯然不能滿足目前需求,而且維護(hù)的效率較低。每次巡檢的成本壓力越來越大。綜合性的巡檢方面,自動(dòng)化的執(zhí)行和信息收集,才是未來巡檢的一個(gè)發(fā)展方向。
oracle公司針對(duì)日常巡檢開發(fā)很多有用的巡檢診斷工具來提高維護(hù)人員效率,其中oracheck工具就是其一。oracheck工具是對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行健康檢查的一個(gè)專用工具,
這個(gè)工具主要用來檢查軟件的配置是否符合要求以及一些最佳實(shí)踐是否被應(yīng)用了。通過這個(gè)工具,用戶可以很方便地、自動(dòng)化地對(duì)自己的系統(tǒng)進(jìn)行健康檢查和評(píng)估。雖然oracheck工具能夠?qū)崿F(xiàn)自動(dòng)化對(duì)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行建康檢查和評(píng)價(jià),但其畢竟基于命令操作和控制臺(tái)輸出,對(duì)顯示結(jié)果格式很難直觀表達(dá)出檢查結(jié)果,并且多臺(tái)數(shù)據(jù)庫(kù)建康檢查低效率。
因此,我們需要解決自動(dòng)轉(zhuǎn)化oracheck工具生成的結(jié)果以界面可視化方式以及圖形化形式展示出來,并且能方便切換到其他數(shù)據(jù)庫(kù)服務(wù)器,并對(duì)其進(jìn)行健康檢查。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是提供一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng),利用oracheck工具自動(dòng)生成的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),通過界面以圖形和列表形式展示數(shù)據(jù),并對(duì)異常數(shù)據(jù)以不同的顏色或形式區(qū)分展示,從而能夠?qū)崿F(xiàn)oracle數(shù)據(jù)庫(kù)一鍵體檢的功能。
本發(fā)明為解決上述技術(shù)問題而采用的技術(shù)方案是提供一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng),包括:
體檢結(jié)果數(shù)據(jù)庫(kù):用于保存所有待檢查的oracle數(shù)據(jù)庫(kù)設(shè)備的體檢結(jié)果數(shù)據(jù);
web服務(wù)器,采用web界面對(duì)所有待檢查的oracle數(shù)據(jù)庫(kù)設(shè)備進(jìn)行可視化展示管理,向選中的數(shù)據(jù)庫(kù)設(shè)備發(fā)送一鍵體檢命令,并定時(shí)向體檢結(jié)果數(shù)據(jù)庫(kù)發(fā)送體檢結(jié)果數(shù)據(jù)查詢請(qǐng)求,采用圖表和列表結(jié)合顯示返回的體檢結(jié)果數(shù)據(jù);
web應(yīng)用控制層:接收來自web界面的一鍵體檢命令,并向mq消息中轉(zhuǎn)層發(fā)送體檢命令;
mq消息中轉(zhuǎn)層:將所述體檢命令通過karaf服務(wù)器端發(fā)送給相應(yīng)的karaf代理端,所述相應(yīng)的karaf代理端利用oracheck工具執(zhí)行體檢命令,并將體檢結(jié)果文件返回給karaf服務(wù)器端,所述karaf服務(wù)器端將體檢結(jié)果文件解析后存入體檢結(jié)果數(shù)據(jù)庫(kù)。
進(jìn)一步地,所述體檢結(jié)果數(shù)據(jù)庫(kù)中設(shè)置正在體檢設(shè)備記錄表,所述正在體檢設(shè)備記錄表中記錄有關(guān)聯(lián)任務(wù)id和關(guān)聯(lián)設(shè)備id,在web應(yīng)用控制層發(fā)送一鍵體檢命令之前,還包括以下步驟:
web應(yīng)用控制層驗(yàn)證選中數(shù)據(jù)庫(kù)設(shè)備是否正在體檢,若所述選中數(shù)據(jù)庫(kù)設(shè)備正在體檢,則web應(yīng)用控制層直接根據(jù)關(guān)聯(lián)設(shè)備id向體檢結(jié)果數(shù)據(jù)庫(kù)查詢正在體檢的數(shù)據(jù)庫(kù)信息,若所述選中數(shù)據(jù)庫(kù)設(shè)備不在體檢,則向mq消息中轉(zhuǎn)層發(fā)送體檢命令。
進(jìn)一步地,在web應(yīng)用控制層接收到一鍵體檢命令之后,還包括檢查karaf代理端的oracheck工具版本號(hào)并同步到最新版本。
進(jìn)一步地,所述karaf代理端的oracheck工具同步更新過程如下:所述web應(yīng)用控制層通過mq消息中轉(zhuǎn)層向karaf服務(wù)器端發(fā)送檢查karaf代理端的oracheck工具版本號(hào)的請(qǐng)求,所述karaf服務(wù)器端將所述請(qǐng)求發(fā)送給相應(yīng)的karaf代理端,所述karaf代理端將檢查結(jié)果回傳給所述web應(yīng)用控制層,并由web應(yīng)用控制層統(tǒng)一下發(fā)最新oracheck工具版本至相應(yīng)的karaf代理端。
進(jìn)一步地,所述karaf服務(wù)器端設(shè)置體檢結(jié)果隊(duì)列并發(fā)處理多個(gè)karaf代理端執(zhí)行體檢命令,所述mq消息中轉(zhuǎn)層監(jiān)聽所述karaf服務(wù)器端的體檢結(jié)果隊(duì)列,所述karaf服務(wù)器端將解析發(fā)送給到數(shù)據(jù)庫(kù)中。
進(jìn)一步地,所述體檢結(jié)果數(shù)據(jù)庫(kù)為其中一個(gè)待檢查的oracle數(shù)據(jù)庫(kù)。
進(jìn)一步地,所述體檢結(jié)果數(shù)據(jù)庫(kù)中設(shè)置有體檢結(jié)果詳情表,所述體檢結(jié)果詳情表中記錄有關(guān)聯(lián)任務(wù)id,總檢查項(xiàng)、通過項(xiàng)、失敗項(xiàng)、數(shù)據(jù)庫(kù)服務(wù)器名、oracheck版本號(hào)、采集壓縮文件名以及采集耗時(shí)。
進(jìn)一步地,所述體檢結(jié)果數(shù)據(jù)庫(kù)中設(shè)置有體檢結(jié)果鏈接信息表和用于記錄歷史信息批次號(hào)的體檢任務(wù)歷史記錄表,并在web界面基于體檢結(jié)果鏈接信息表和體檢任務(wù)歷史記錄表進(jìn)行分批次和分設(shè)備查看。
本發(fā)明提出的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng),利用oracheck工具自動(dòng)生成的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),通過界面以圖形和列表形式展示數(shù)據(jù),并對(duì)異常數(shù)據(jù)以不同的顏色或形式區(qū)分展示,從而能夠?qū)崿F(xiàn)oracle數(shù)據(jù)庫(kù)一鍵體檢的功能。
附圖說明
圖1是本發(fā)明實(shí)施例中的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng)的模塊圖;
圖2是本發(fā)明另一實(shí)施例中的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng)的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
本發(fā)明實(shí)施例中的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng)利用oracheck工具自動(dòng)生成的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),通過界面以圖形和列表形式展示數(shù)據(jù),并對(duì)異常數(shù)據(jù)以不同的顏色或形式區(qū)分展示,從而能夠?qū)崿F(xiàn)oracle數(shù)據(jù)庫(kù)一鍵體檢的功能。
本發(fā)明使用的karaf是一個(gè)基于osgi的運(yùn)行環(huán)境,osgi(openservicegatewayinitiative)技術(shù)是面向java的動(dòng)態(tài)模型系統(tǒng)。osgi服務(wù)平臺(tái)向java提供服務(wù),這些服務(wù)使java成為軟件集成和軟件開發(fā)的首選環(huán)境。java提供在多個(gè)平臺(tái)支持產(chǎn)品的可移植性。osgi技術(shù)提供允許應(yīng)用程序使用精煉、可重用和可協(xié)作的組件構(gòu)建的標(biāo)準(zhǔn)化原語(yǔ)。
osgi是一個(gè)標(biāo)準(zhǔn),它致力于提供給java項(xiàng)目一個(gè)模塊化的底層環(huán)境,以及一系列通用的服務(wù)(service)。和普通的jvm程序相比,osgi的程序天生擁有動(dòng)態(tài)模塊的特點(diǎn),不同的模塊(osgi里稱之為bundle)有著獨(dú)立的生命周期,可以獨(dú)立進(jìn)行安裝、啟動(dòng)、停止、卸載的操作,模塊間的依賴性管理也由osgi提供??梢钥闯?,osgi非常適合需要進(jìn)行plugin管理的項(xiàng)目,一個(gè)典型的成功案例就是eclipse和它眾多的plugin。osgi標(biāo)準(zhǔn)還規(guī)范了一系列我們常見的操作,日志、配置文件、事件隊(duì)列、web開發(fā)、jpa&jdbc等等,大部分部署osgi標(biāo)準(zhǔn)的框架都提供了這些服務(wù),這樣一方面規(guī)范了我們代碼的結(jié)構(gòu),一方面節(jié)約了我們開發(fā)的時(shí)間。
karaf是apache旗下的一個(gè)開源項(xiàng)目;karaf同時(shí)也是一個(gè)基于osgi的運(yùn)行環(huán)境,karaf提供了一個(gè)輕量級(jí)的osgi容器,可以用于部署各種組件,應(yīng)用程序。karaf提供了很多特性用于幫助開發(fā)者和用戶更加靈活的部署應(yīng)用,例如:熱部署、動(dòng)態(tài)配置、幾種日志處理系統(tǒng)、本地系統(tǒng)集成、可編程擴(kuò)展控制臺(tái)、ssh遠(yuǎn)程訪問以及內(nèi)置安裝認(rèn)證機(jī)制等。同時(shí)karaf作為一款成熟而且優(yōu)秀的osgi運(yùn)行環(huán)境以及容器已經(jīng)被諸多apache項(xiàng)目作為基石儲(chǔ)容器,例如:apachegeronimo、apacheservicemix、fuseesb,由此可見karaf在性能、功能和穩(wěn)定性上都是個(gè)不錯(cuò)的選擇。
apachefelix是apache旗下的一個(gè)osgi框架,項(xiàng)目本身非常成熟,已經(jīng)被用到了很多其他的項(xiàng)目中,例如apacheservicemixo,它本身提供的服務(wù)也是最全的,幾乎涵蓋了全部的osgi4.2的標(biāo)準(zhǔn)。除此之外還提供了一些非標(biāo)準(zhǔn)的功能,例如ipojo。框架本身非常緊湊,只需要3個(gè)包加一個(gè)shell就可以運(yùn)行了,無(wú)論是開發(fā)還是debug都非常簡(jiǎn)便。
apachefelixkaraf本身是felix的一個(gè)子項(xiàng)目,但他其實(shí)是封裝了felix,提供更高一層的runtime,默認(rèn)情況下內(nèi)置的大量實(shí)用工具。
karaf旨在結(jié)合equinox或felix兩個(gè)框架出色的osgi功能,并且保證其開箱即用。比如說,它包含了一個(gè)可配置的日志系統(tǒng)(基于log4j,但針對(duì)眾多通用的日志系統(tǒng)進(jìn)行了包裝)、通過ssh實(shí)現(xiàn)的遠(yuǎn)程訪問、通過configadmin(源代碼位于etc目錄中)的配置以及內(nèi)建的jaas支持。不僅如此,karaf還安裝了paxurl的mvn協(xié)議,這樣就可以從maven中央倉(cāng)庫(kù)(在必要的情況下會(huì)自動(dòng)將其包裝為bundle)安裝bundle了。
此外,karaf還提出了特性的概念,所謂特性就是bundle的集合,能以組的形式安裝到運(yùn)行著的osgi運(yùn)行時(shí)當(dāng)中。特性包含了對(duì)obr、jetty以及spring的支持,做到了開箱即用。這樣,如果需要安裝多個(gè)bundle,但這些bundle之間并沒有嚴(yán)格的運(yùn)行期依賴,那么這種支持就可以大大簡(jiǎn)化這種情況。
activemq是一種開源的,實(shí)現(xiàn)了jms1.1規(guī)范的,面向消息(mom)的中間件,為應(yīng)用程序提供高效的、可擴(kuò)展的、穩(wěn)定的和安全的企業(yè)級(jí)消息通信。activemq使用apache提供的授權(quán),任何人都可以對(duì)其實(shí)現(xiàn)代碼進(jìn)行修改。
activemq的設(shè)計(jì)目標(biāo)是提供標(biāo)準(zhǔn)的,面向消息的,能夠跨越多語(yǔ)言和多系統(tǒng)的應(yīng)用集成消息通信中間件。activemq實(shí)現(xiàn)了jms標(biāo)準(zhǔn)并提供了很多附加的特性。這些附加的特性包括,jmx管理(javamanagementextensions,即java管理擴(kuò)展),主從管理(master/salve,這是集群模式的一種,主要體現(xiàn)在可靠性方面,當(dāng)主中介(代理)出現(xiàn)故障,那么從代理會(huì)替代主代理的位置,不至于使消息系統(tǒng)癱瘓、消息組通信(同一組的消息,僅會(huì)提交給一個(gè)客戶進(jìn)行處理)、有序消息管理(確保消息能夠按照發(fā)送的次序被接受者接收)。消息優(yōu)先級(jí)(優(yōu)先級(jí)高的消息先被投遞和處理)、訂閱消息的延遲接收(訂閱消息在發(fā)布時(shí),如果訂閱者沒有開啟連接,那么當(dāng)訂閱者開啟連接時(shí),消息中介將會(huì)向其提交之前的,其未處理的消息)、接收者處理過慢(可以使用動(dòng)態(tài)負(fù)載平衡,將多數(shù)消息提交到處理快的接收者,這主要是對(duì)ptp消息所說)、虛擬接收者(降低與中介的連接數(shù)目)、成熟的消息持久化技術(shù)(部分消息需要持久化到數(shù)據(jù)庫(kù)或文件系統(tǒng)中,當(dāng)中介崩潰時(shí),信息不會(huì)丟失)、支持游標(biāo)操作(可以處理大消息)、支持消息的轉(zhuǎn)換、通過使用apache的camel可以支持eip、使用鏡像隊(duì)列的形式輕松的對(duì)消息隊(duì)列進(jìn)行監(jiān)控等。
activemq特點(diǎn)如下:
1)基于jms1.1和j2ee1.4規(guī)范;
2)支持多種連接協(xié)議:http/s、ip組播、ssl、stomp、tcp、udp以及xmpp等;
3)支持多種消息持久化機(jī)制:文件形式持久化(kahadb)、關(guān)系數(shù)據(jù)庫(kù)形式持久化(jdbc);
4)插件化的安全機(jī)制:activemq支持插件開發(fā),并且它的安全機(jī)制就是以插件形式實(shí)現(xiàn)靈活配置的;
5)支持嵌入java應(yīng)用,activemq就可以作為一個(gè)單獨(dú)服務(wù),也可以直接嵌入到其他java應(yīng)用中;
6)支持與應(yīng)用服務(wù)器進(jìn)行集成:支持apachetomcat、jetty、apachegeronimo、jboss;
7)多種語(yǔ)言的客戶端api:支持c/c++、.net、perl、php、python以及ruby等;
8)集群;
9)動(dòng)態(tài)化的簡(jiǎn)單管理。
為使本發(fā)明的上述目的、特征和有益效果能夠更為明顯易懂,下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例做詳細(xì)的說明。
圖1是本發(fā)明實(shí)施例中的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng)的模塊圖。如圖1所示,一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng),包括:體檢結(jié)果數(shù)據(jù)庫(kù)16:用于保存所有待檢查的oracle數(shù)據(jù)庫(kù)設(shè)備的體檢結(jié)果數(shù)據(jù);web服務(wù)器11,采用web界面對(duì)所有待檢查的oracle數(shù)據(jù)庫(kù)設(shè)備進(jìn)行可視化展示管理,向選中的數(shù)據(jù)庫(kù)設(shè)備發(fā)送一鍵體檢命令,并定時(shí)向體檢結(jié)果數(shù)據(jù)庫(kù)16發(fā)送體檢結(jié)果數(shù)據(jù)查詢請(qǐng)求,采用圖表和列表結(jié)合顯示返回的體檢結(jié)果數(shù)據(jù);web應(yīng)用控制層12:接收來自web界面的一鍵體檢命令,并向mq消息中轉(zhuǎn)層13發(fā)送體檢命令;mq消息中轉(zhuǎn)層13:將所述體檢命令通過karaf服務(wù)器端14發(fā)送給相應(yīng)的karaf代理端15,所述相應(yīng)的karaf代理端15利用oracheck工具執(zhí)行體檢命令,并將體檢結(jié)果文件通過mq消息中轉(zhuǎn)層13返回給karaf服務(wù)器端,所述karaf服務(wù)器端14將體檢結(jié)果文件解析后存入體檢結(jié)果數(shù)據(jù)庫(kù)16。
圖2是本發(fā)明實(shí)施例中的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng)的實(shí)現(xiàn)流程圖。如圖2所示,體檢結(jié)果數(shù)據(jù)庫(kù)16中設(shè)置正在體檢設(shè)備記錄表,所述正在體檢設(shè)備記錄表中記錄有關(guān)聯(lián)任務(wù)id和關(guān)聯(lián)設(shè)備id,web應(yīng)用控制層驗(yàn)證選中數(shù)據(jù)庫(kù)設(shè)備是否正在體檢,若所述選中數(shù)據(jù)庫(kù)設(shè)備正在體檢,則web應(yīng)用控制層直接根據(jù)關(guān)聯(lián)設(shè)備id向體檢結(jié)果數(shù)據(jù)庫(kù)查詢正在體檢的數(shù)據(jù)庫(kù)信息,若所述選中數(shù)據(jù)庫(kù)設(shè)備不在體檢,則web應(yīng)用控制層向mq消息中轉(zhuǎn)層發(fā)送體檢命令:mq消息中轉(zhuǎn)層將所述一鍵體檢命令發(fā)送給所述相應(yīng)的karaf代理端,所述相應(yīng)的karaf代理端執(zhí)行體檢命令,并將體檢結(jié)果文件發(fā)送給所述mq消息中轉(zhuǎn)層。
在具體實(shí)施中,在web應(yīng)用控制層發(fā)送一鍵體檢命令之后,檢查karaf代理端的oracheck工具版本號(hào),如是最新版本,不用下發(fā)新的oracheck工具。所述檢查karaf代理端的oracheck工具版本號(hào),如是最新版本,不用下發(fā)新的oracheck工具,包括所述mq消息中轉(zhuǎn)層向karaf服務(wù)器端發(fā)送檢查karaf代理端的oracheck工具版本號(hào)的請(qǐng)求,所述karaf服務(wù)器端將所述請(qǐng)求發(fā)送給相應(yīng)的karaf代理端,所述karaf代理端將檢查結(jié)果回傳給所述web應(yīng)用控制層,并由web應(yīng)用控制層統(tǒng)一下發(fā)最新oracheck工具版本至相應(yīng)的karaf代理端。
其中,所述karaf服務(wù)器端設(shè)置體檢結(jié)果隊(duì)列并發(fā)處理多個(gè)karaf代理端執(zhí)行體檢命令,所述mq消息中轉(zhuǎn)層監(jiān)聽所述karaf服務(wù)器端的體檢結(jié)果隊(duì)列,所述karaf服務(wù)器端將解析發(fā)送到所述數(shù)據(jù)庫(kù)中。
其中,所述web應(yīng)用控制層定時(shí)向所述數(shù)據(jù)庫(kù)發(fā)送查詢體檢結(jié)果數(shù)據(jù)的請(qǐng)求。所述體檢結(jié)果數(shù)據(jù)庫(kù)為其中一個(gè)待檢查的oracle數(shù)據(jù)庫(kù)。
在具體實(shí)施中,所述體檢結(jié)果數(shù)據(jù)庫(kù)中設(shè)置有體檢結(jié)果詳情表,所述體檢結(jié)果詳情表中記錄有關(guān)聯(lián)任務(wù)id,總檢查項(xiàng)、通過項(xiàng)、失敗項(xiàng)、數(shù)據(jù)庫(kù)服務(wù)器名、oracheck版本號(hào)、采集壓縮文件名以及采集耗時(shí)。
其中,所述體檢結(jié)果數(shù)據(jù)庫(kù)中設(shè)置有體檢結(jié)果鏈接信息表和用于記錄歷史信息批次號(hào)的體檢任務(wù)歷史記錄表,并在web界面基于體檢結(jié)果鏈接信息表和體檢任務(wù)歷史記錄表進(jìn)行分批次和分設(shè)備查看,同批次最多支持10臺(tái)數(shù)據(jù)庫(kù)的一鍵體檢。并且支持選擇巡檢項(xiàng)進(jìn)行一鍵體檢,查看結(jié)果分巡檢項(xiàng)展現(xiàn)。
本發(fā)明提出的一種基于oracheck的oracle數(shù)據(jù)庫(kù)一鍵式體檢系統(tǒng),利用oracheck工具自動(dòng)生成的數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù),通過界面以圖形和列表形式展示數(shù)據(jù),并對(duì)異常數(shù)據(jù)以不同的顏色或形式區(qū)分展示,從而能夠?qū)崿F(xiàn)oracle數(shù)據(jù)庫(kù)一鍵體檢的功能。
雖然本發(fā)明已以較佳實(shí)施例揭示如上,然其并非用以限定本發(fā)明,任何本領(lǐng)域技術(shù)人員,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可作些許的修改和完善,因此本發(fā)明的保護(hù)范圍當(dāng)以權(quán)利要求書所界定的為準(zhǔn)。