專利名稱::數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及數(shù)據(jù)庫
技術(shù)領(lǐng)域:
,尤其涉及一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法。
背景技術(shù):
:隨著計(jì)算機(jī)技術(shù)和通訊技術(shù)的不斷發(fā)展,各大企業(yè)都加快了信息化建設(shè)的步伐,作為其中基礎(chǔ)設(shè)施的信息網(wǎng)絡(luò)平臺(tái)建設(shè)也逐步完善。依托這個(gè)基礎(chǔ)平臺(tái)可以將合作伙伴、供應(yīng)商、客戶和員工有機(jī)地結(jié)合起來,為企業(yè)高層決策、部門信息交流、對外宣傳等提供有效的途徑。但隨著應(yīng)用需求的復(fù)雜性增加,網(wǎng)絡(luò)規(guī)模的不斷擴(kuò)大,導(dǎo)致網(wǎng)絡(luò)故障率提高、可管理性下降。加之病毒泛濫、網(wǎng)絡(luò)攻擊事件的日益增多、系統(tǒng)漏洞的不斷出現(xiàn),使得在傳統(tǒng)的網(wǎng)絡(luò)管理模式下,大量的日常網(wǎng)絡(luò)故障需要人工定位、手動(dòng)排除,不僅效率低下,同時(shí)對企業(yè)的整個(gè)生產(chǎn)經(jīng)營活動(dòng)也產(chǎn)生了巨大的影響,并且在一定程度上阻礙了企業(yè)信息化發(fā)展的步伐。因此,把企業(yè)信息網(wǎng)絡(luò)平臺(tái)的建設(shè)與管理提高到一個(gè)新的水平,在日常維護(hù)中實(shí)現(xiàn)網(wǎng)絡(luò)故障的快速查找、快速定位、快速排除,擺脫“來電響應(yīng)式”的被動(dòng)網(wǎng)絡(luò)管理方式,是推動(dòng)企業(yè)信息化建設(shè)的關(guān)鍵。數(shù)據(jù)庫性能的監(jiān)控是企業(yè)網(wǎng)絡(luò)管理的一項(xiàng)重要內(nèi)容,實(shí)現(xiàn)數(shù)據(jù)庫性能的集中化、智能化監(jiān)控對于企業(yè)的正常運(yùn)行、企業(yè)信息化的正常進(jìn)行都具有重要意義。
發(fā)明內(nèi)容本發(fā)明的目的是提供一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法。數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法使用配置文件描述各種需要監(jiān)控的數(shù)據(jù)庫,并使用統(tǒng)一的監(jiān)控程序,根據(jù)配置文件描述的監(jiān)控?cái)?shù)據(jù)項(xiàng),通過網(wǎng)絡(luò)連接讀取數(shù)據(jù)庫性能數(shù)據(jù);獲取性能數(shù)據(jù)后,把它跟預(yù)先規(guī)定的閾值相比較,如果需要觸發(fā)告警動(dòng)作;同時(shí)把數(shù)據(jù)寫入性能數(shù)據(jù)庫中。所述的配置文件配置文件中包含了監(jiān)控?cái)?shù)據(jù)庫對象數(shù)據(jù)項(xiàng)的各種信息,包括被監(jiān)控?cái)?shù)據(jù)庫的信息、數(shù)據(jù)項(xiàng)的標(biāo)識(shí)與分類、數(shù)據(jù)項(xiàng)的類型、數(shù)據(jù)項(xiàng)值的獲取方法;數(shù)據(jù)項(xiàng)分為兩類,分別為監(jiān)控變量和平坦表;配置文件采用Windows操作系統(tǒng)常見的ini文件格式。監(jiān)控程序監(jiān)控程序讀取配置文件后,對讀取監(jiān)控?cái)?shù)據(jù)項(xiàng)的SQL語句進(jìn)行優(yōu)化,合并主體部分相同的語句,以減少對被監(jiān)控?cái)?shù)據(jù)庫的影響;監(jiān)控程序獲得監(jiān)控?cái)?shù)據(jù)后,把數(shù)據(jù)與預(yù)先設(shè)定的閾值相比較,對超出閾值的數(shù)據(jù)項(xiàng)進(jìn)行告警,并把所有數(shù)據(jù)項(xiàng)寫入性能數(shù)據(jù)庫。性能數(shù)據(jù)庫性能數(shù)據(jù)庫中的表分為兩類,對于平坦表,有與之結(jié)構(gòu)相同、但增加了時(shí)間和被監(jiān)控?cái)?shù)據(jù)庫標(biāo)識(shí)字段的數(shù)據(jù)表;對于監(jiān)控變量,性能數(shù)據(jù)庫中有三張表,分別描述變量的分類、變量的描述與閾值、變量的監(jiān)控?cái)?shù)據(jù)。本發(fā)明的優(yōu)點(diǎn)是1)無需在被監(jiān)控?cái)?shù)據(jù)庫端安裝代理即可實(shí)現(xiàn)性能監(jiān)控,部署成本低;2)使用同樣的程序代碼,只需編寫不同配置文件即可實(shí)現(xiàn)對不同數(shù)據(jù)庫的監(jiān)控,使它具有良好的伸縮性和可擴(kuò)展性;3)支持變量型和數(shù)據(jù)表型的性能監(jiān)控,可支持常見的所有數(shù)據(jù)庫類型。圖1是數(shù)據(jù)庫性能監(jiān)控配置數(shù)據(jù)的處理流程;圖2是本發(fā)明主要模塊的結(jié)構(gòu)圖;圖3是本發(fā)明中數(shù)據(jù)庫性能監(jiān)控的流程圖;具體實(shí)施方式數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法的具體步驟如下1)把數(shù)據(jù)庫的性能數(shù)據(jù)歸結(jié)為監(jiān)控變量和監(jiān)控表?,F(xiàn)有的數(shù)據(jù)庫都無一例外地內(nèi)建了對本身性能進(jìn)行提取的支持,這也成為本發(fā)明使用統(tǒng)一的方法對數(shù)據(jù)庫性能進(jìn)行監(jiān)控的基礎(chǔ)。但是不同的數(shù)據(jù)庫中性能數(shù)據(jù)的表示方法是不同的有的數(shù)據(jù)庫把本身的性能數(shù)據(jù)庫保存在系統(tǒng)表中,這些系統(tǒng)表可如同其他表一樣進(jìn)行操作(如Oracle和MicrosoftSQLServer);而另外一些數(shù)據(jù)庫則把性能數(shù)據(jù)維護(hù)在本身的數(shù)據(jù)結(jié)構(gòu)中,可通過執(zhí)行命令進(jìn)行提取,而且提取的數(shù)據(jù)看起來也像是從數(shù)據(jù)表中讀出的一樣(如MySQL和DB2),我們稱這些表為“虛擬表”。不管是哪種情況,都可以通過TCP連接發(fā)送一定的命令或執(zhí)行一定的SQL語句來提取性能數(shù)據(jù)。不管是實(shí)際數(shù)據(jù)表,還是“虛擬表”,根據(jù)其內(nèi)容的組織方式,可以分為以下兩種(1)表的內(nèi)容為數(shù)據(jù)庫某一特定方面的性能數(shù)據(jù),表的每一列都具有事先定義的特定意義。(2)表的內(nèi)容為一系列變量,而表中具有“變量名”或“變量編號(hào)”、“變量值”、“變量類型”等列。取出內(nèi)容后,我們可以根據(jù)變量名或經(jīng)變量編號(hào)查詢獲知變量所代表的意義。下面是監(jiān)控表的例子(Oracle數(shù)據(jù)庫)SQL>SELECTCREATED,LOG_MODEFROMV$DATABASE;CREATEDLOG_MODE---------------14-10月-06NOARCHIVELOGSQL>selectTABLESPACE_NAME,BLOCK_SIZE,STATUS,LOGGINGfromDBA_TABLESPACES;TABLESPACE_NAMEBLOCK_SIZESTATUSLOGGING--------------------------SYSTEM8192ONLINELOGGINGUNDOTBS18192ONLINELOGGINGTEMP8192ONLINENOLOGGINGCWMLITE8192ONLINELOGGINGDRSYS8192ONLINELOGGINGEXAMPLE8192ONLINELOGGINGINDX8192ONLINELOGGING上面的兩次查詢分別從兩個(gè)系統(tǒng)表中獲得了數(shù)據(jù)庫和表空間的信息,從列的名字上我們也可以看出該列數(shù)據(jù)所代表的意義。表中的每一行數(shù)據(jù)代表一條有意義的記錄,記錄之間是并列的關(guān)系。下面是監(jiān)控變量的例子(MySQL數(shù)據(jù)庫和SQLServer數(shù)據(jù)庫)showvariableslike“%size%”;select*frommaster.dbo.sysperfinfo;object_namecounter_nameinstance_namecntr_valuecntr_typeSQLServer:BufferManagerBuffercachehitratio1273537003008SQLServer:BufferManagerBuffercachehuitratiobase12961073939459SQLServer:BufferManagerPagelookups/sec7296272696320SQLServer:BufferManagerFreeliststalls/sec0272696320SQLServer:BufferManagerFreepages13365536在上面的例子中,同樣用SQL語句或命令獲得了多條數(shù)據(jù),但是在查看具體的記錄之前,我們不能獲知記錄所代表的意義。記錄均為“變量名-變量值”型的數(shù)據(jù),各條記錄之間不存在關(guān)系。2)用配置文件來描述監(jiān)控變量和監(jiān)控表。把要監(jiān)控的對象明確分為兩類之后,可以用配置文件來描述這些監(jiān)控對象,并用于監(jiān)控程序?qū)?shù)據(jù)庫進(jìn)行監(jiān)控。配置文件采用Windows平臺(tái)的ini文件格式,即a.使用普通文本編碼,可以使用任意文本編輯器進(jìn)行查看、修改;b.配置文件由若干節(jié)(Section)構(gòu)成,每個(gè)節(jié)分為節(jié)名和節(jié)體兩部分,節(jié)名為中括號(hào)(“[”和“]”)圍起來的字符串,如“[main]”。節(jié)體為若干個(gè)表示為等式的項(xiàng)目描述,等號(hào)左邊為項(xiàng)目名,右邊為項(xiàng)目值。如“VarNum=5”。c.以分號(hào)開始的行為注釋行,在解析中會(huì)被忽略。要以ini文件格式對配置數(shù)據(jù)進(jìn)行描述,配置文件中必須包含一個(gè)main節(jié),以總體描述配置文件的內(nèi)容。main節(jié)中有下列項(xiàng)目VariableNum——變量描述的個(gè)數(shù)。如果有5個(gè)變量,VariableNum=5,配置文件另有5個(gè)節(jié)分別描述5個(gè)變量,節(jié)名分別為Var1~Var5。TableNum——監(jiān)控表格的個(gè)數(shù)。如果有3個(gè)監(jiān)控表格,TableNum=3,配置文件另有3個(gè)節(jié)分別描述3個(gè)表,節(jié)名分別為Table1~Table3。DatabaseSig=本配置文件對應(yīng)的數(shù)據(jù)庫“指紋”(包括名稱和版本,以產(chǎn)品名_版本號(hào)的形式編碼),如果本配置文件支持多種數(shù)據(jù)庫,或某個(gè)數(shù)據(jù)庫的多個(gè)版本,則該項(xiàng)目列出所有該配置文件適用的產(chǎn)品“指紋”,中間以逗號(hào)分割。接下來是各個(gè)監(jiān)控變量的描述和各個(gè)監(jiān)控表的描述。每個(gè)監(jiān)控變量的描述和每個(gè)監(jiān)控表的描述各占一節(jié)。監(jiān)控變量的節(jié)名為Var+數(shù)字編號(hào),如“Var3”,節(jié)中包含如下項(xiàng)目VarID——保存數(shù)據(jù)時(shí)使用的ID,整型。VarName——變量名稱,字符串。Type——變量類型,字段類型為字段在數(shù)據(jù)庫聲明的對應(yīng)類型,比如INTEGER、CHAR(5)等。Class——變量歸類,在作用上屬于哪個(gè)分類。Description——變量作用描述SQL——要獲得變量的值,應(yīng)該使用什么SQL語句。Cond——SQL語句用來篩選本變量所使用的條件。obj_ect_value——指定從SQL語句所取出的哪個(gè)字段獲取變量值。UpdateMethod——監(jiān)控量的更新方式,可以是以下情況之一■0——RunOnce,只在啟動(dòng)時(shí)采集一次數(shù)據(jù)■1——RepUpdate,周期采樣,只保留最后一次數(shù)據(jù)?!?——RepStore,周期采樣,保留每次采樣。Valid——該監(jiān)控變量是否有效。對于監(jiān)控表格而言,同樣每個(gè)節(jié)包含一個(gè)監(jiān)控表的描述,節(jié)名編碼為“Table”+數(shù)字,如“Table3”。節(jié)中包含如下項(xiàng)目TableName——表格的名字UpdateMethod——更新方式,其作用同上。SQL——可選,如果有該項(xiàng),則表的查詢語句為該SQL語句,如果沒有該項(xiàng),則系統(tǒng)自動(dòng)使用全部字段構(gòu)造出查詢語句。COLNUM——列的個(gè)數(shù)COL?——每列的描述,“?”為數(shù)字編號(hào),從1開始。COL?的格式為Column_nameColumn_TypeColumn_Description其中Column_name為列名,Column_Type為列的數(shù)據(jù)類型,Column_Description為列描述。因?yàn)镃olumn_name和Column_description中可以使用幾乎任意字符,配置文件中為Column_name預(yù)留30字節(jié)的寬度,之后為Column_type,而Column_type為固定4字節(jié)寬度,之后為Column_description,直到行末尾。如果某個(gè)字段長度不足,則以空格填充空余部分。Valid——該監(jiān)控表是否有效。使用上述的配置文件,就可以對所有數(shù)據(jù)庫的監(jiān)控內(nèi)容進(jìn)行描述,用于提取監(jiān)控?cái)?shù)據(jù)。3)監(jiān)控信息數(shù)據(jù)庫的數(shù)據(jù)組織。因?yàn)橛袃煞N類型的監(jiān)控信息,監(jiān)控信息數(shù)據(jù)庫必須能夠容納每種類型。對于監(jiān)控變量,可采用如下的數(shù)據(jù)表來描述a.性能數(shù)據(jù)表sysperfinfo,具有如下字段<tablesid="table2"num="002"><tablewidth="622">UpdateTIMETimpStamp型,記錄數(shù)據(jù)收集時(shí)間DBID整型,數(shù)據(jù)庫IDFEILDID整型,對應(yīng)變量的IDVALUE字符串型,記錄該變量的值</table></tables>b.性能數(shù)據(jù)描述表sysperfdes,具有如下字段說明閾值1和閾值2是兩個(gè)浮點(diǎn)數(shù),對于數(shù)值型的變量,規(guī)定了界限,如果高于或低于界限,則觸發(fā)告警動(dòng)作(告警動(dòng)作有兩種輕微和嚴(yán)重告警。如果過了第一個(gè)閾值但是未到第二個(gè)閾值,則觸發(fā)輕微告警,否則觸發(fā)嚴(yán)重告警。因?yàn)閿?shù)值型變量有不同的增長方向,所以另設(shè)一方向變量,其方向由DIR確定)。DIR指明跟閾值的比較方法,如果DIR為1,則說明變量的值越小越好,當(dāng)變量值<=閾值1時(shí),不觸發(fā)報(bào)警;當(dāng)閾值1<變量值<=閾值2時(shí),觸發(fā)輕微告警;當(dāng)變量值>閾值2時(shí),觸發(fā)嚴(yán)重告警。c.性能數(shù)據(jù)分類sysperfclass,具有如下字段對于監(jiān)控表格,系統(tǒng)使用另外一種方式進(jìn)行存儲(chǔ)建立一個(gè)結(jié)構(gòu)類似的表格,并增加數(shù)據(jù)庫ID(DBID)字段和時(shí)間字段(UpdateTime),分別記錄性能數(shù)據(jù)對應(yīng)的數(shù)據(jù)庫ID和數(shù)據(jù)的更新時(shí)間。下面是配置文件的一個(gè)例子[Main]VariableNum=3TableNum=2DatabaseSig=oracle_8[Var1]VarID=10001VarName=logonscumulativeType=0Class=7Description=logonscumulativeSQL=selectvaluefromv$sysstatwherename=′logonscumulative′object_value=valueUpdateMethod=2[Var2]VarID=10002VarName=logonscurrentType=0Class=7Description=logonscurrentSQL=selectvaluefromv$sysstatwherename=′logonscurrent′object_value=valueUpdateMethod=2[Var3]VarID=10003VarName=openedcursorscumulativeType=0Class=7Description=openedcursorscumulativeSQL=selectvaluefromv$sysstatwherename=′openedcursorscumulative′object_value=valueUpdateMethod=2[Table1]TableName=V$BUFFER_POOL_STATISTICSUpdateMethod=1COLNUM=19COL1=ID0BufferpoolIDnumberCOL2=NAME1BufferpoolnameCOL3=SET_MSIZE0BufferpoolmaximumsetsizeCOL4=CNUM_REPL0NumberofbuffersonreplacementlistCOL5=CNUM_WRITE0NumberofbuffersonwritelistCOL6=CNUM_SET0NumberofbuffersinsetCOL7=BUF_GOT0NumberofbuffersgottenbythesetCOL8=SUM_WRITE0NumberofbufferswrittenbythesetCOL9=SUM_SCAN0NumberofbuffersscannedinthesetCOL10=FREE_BUFFER_WAIT0FreebufferwaitstatisticCOL11=WRITE_COMPLETE_WAIT0WritecompletewaitstatisticCOL12=BUFFER_BUSY_WAIT0BufferbusywaitstatisticCOL13=FREE_BUFFER_INSPECTED0FreebufferinspectedstatisticCOL14=DIRTY_BUFFERS_SPECTED0DirtybuffersinspectedstatisticCOL15=DB_BLOCK_CHANGE0DatabaseblockschangedstatisticCOL16=DB_BLOCK_GETS0DatabaseblocksgottenstatisticCOL17=CONSISTENT_GETS0ConsistentgetsstatisticCOL18=PHYSICAL_READS0PhysicalreadsstatisticCOL19=PHYSICAL_WRITES0Physicalwritesstatistic[Table2]TableName=V$RSRC_CONSUMER_GROUPUpdateMethod=1COLNUM=9COL1=NAME1NameoftheconsumergroupCOL2=ACTIVE_SESSIONS0NumberofcurrentlyactivesessionsinthisgroupCOL3=EXECUTION_WAITERS0NumberofcurrentlywaitingsessionsCOL4=REQUESTS0CumulativenumberofrequestsCOL5=CPU_WAIT_TIME0CumulativeamountoftimethatsessionswaitedforCPUCOL6=CPU_WAITS0CumulativenumberoftimesallsessionswaitedforCPUCOL7=CONSUMED_CPU_TIME0CumulativeamountofCPUtimeconsumedbyallsessionsCOL8=Y(jié)IELDS0CumulativenumberoftimessessionsyieldtheCPUCOL9=SESSIONS_QUEUED0Reservedforfutureuse3)配置文件的解析與優(yōu)化配置文件解析模塊從監(jiān)控?cái)?shù)據(jù)配置文件中讀取數(shù)據(jù)庫性能監(jiān)控配置信息,經(jīng)過規(guī)則優(yōu)化模塊的優(yōu)化,產(chǎn)生監(jiān)控變量集合和監(jiān)控表集合。如圖1所示,圖中(1)監(jiān)控?cái)?shù)據(jù)配置文件,為描述被監(jiān)控?cái)?shù)據(jù)庫性能數(shù)據(jù)的配置文件,配置文件可能有多個(gè),每個(gè)文件對應(yīng)一個(gè)或多個(gè)產(chǎn)品的一個(gè)或多個(gè)版本。(2)配置文件解析模塊,對配置文件進(jìn)行語法檢查,并讀取其中的監(jiān)控變量和監(jiān)控表的配置信息。(3)規(guī)則優(yōu)化模塊,對配置文件解析模塊讀取的配置信息進(jìn)行優(yōu)化,主要是對于具有僅條件部分不同的SQL語句的監(jiān)控變量建立關(guān)聯(lián)關(guān)系,以減少SQL語句的執(zhí)行次數(shù)。(4)監(jiān)控變量集合,記錄了要監(jiān)控的所有監(jiān)控變量的信息(類型、獲取方法等)。(5)監(jiān)控表集合,記錄了要監(jiān)控的所有監(jiān)控表的信息(有多少字段,字段類型分別是什么,如何獲得數(shù)據(jù)等)。4)性能數(shù)據(jù)的讀取與處理監(jiān)控任務(wù)控制模塊控制若干監(jiān)控?cái)?shù)據(jù)讀取模塊行為,數(shù)據(jù)讀取模塊根據(jù)監(jiān)控變量集合和監(jiān)控表集合從被監(jiān)控?cái)?shù)據(jù)庫讀取性能數(shù)據(jù),寫入監(jiān)控信息數(shù)據(jù)庫。如圖2所示,圖中(6)監(jiān)控任務(wù)控制模塊,為監(jiān)控任務(wù)的總控模塊,負(fù)責(zé)監(jiān)控任務(wù)的創(chuàng)建和停止。對于每個(gè)要監(jiān)控的數(shù)據(jù)庫對象,它都創(chuàng)建一個(gè)任務(wù),并傳給任務(wù)監(jiān)控對象的數(shù)據(jù)庫產(chǎn)品“指紋”,用于獲取監(jiān)控?cái)?shù)據(jù)。(7)監(jiān)控?cái)?shù)據(jù)讀取模塊,負(fù)責(zé)監(jiān)控?cái)?shù)據(jù)的讀取。它由(6)監(jiān)控任務(wù)控制模塊創(chuàng)建后,從監(jiān)控任務(wù)控制模塊處獲得要監(jiān)控?cái)?shù)據(jù)庫對象的“指紋”,并依據(jù)指紋獲得要監(jiān)控?cái)?shù)據(jù)庫對象的監(jiān)控變量集合和監(jiān)控表集合,并據(jù)此進(jìn)行性能監(jiān)控。(8)被監(jiān)控?cái)?shù)據(jù)庫,為要監(jiān)控的數(shù)據(jù)庫,可以為各種數(shù)據(jù)庫類型。(9)監(jiān)控信息數(shù)據(jù)庫,用于記錄對(8)被監(jiān)控?cái)?shù)據(jù)庫監(jiān)控?cái)?shù)據(jù),以備查閱,或及時(shí)對不正常狀態(tài)進(jìn)行告警。監(jiān)控任務(wù)的執(zhí)行流程如圖3所示,主要步驟有(1)監(jiān)控任務(wù)控制模塊創(chuàng)建新的監(jiān)控?cái)?shù)據(jù)讀取模塊對被監(jiān)控?cái)?shù)據(jù)庫進(jìn)行監(jiān)控。(2)監(jiān)控?cái)?shù)據(jù)讀取模塊從監(jiān)控任務(wù)控制模塊處獲得要監(jiān)控?cái)?shù)據(jù)庫對象的“指紋”,并依據(jù)指紋獲得要監(jiān)控?cái)?shù)據(jù)庫對象的監(jiān)控變量集合和監(jiān)控表集合,并據(jù)此進(jìn)行性能監(jiān)控。(3)如果所有監(jiān)控變量均已處理,則轉(zhuǎn)(9)(4)獲取下一監(jiān)控變量信息。(5)如果該監(jiān)控變量的值在之前已經(jīng)由同一SQL語句讀取,則轉(zhuǎn)(3)(6)按照監(jiān)控變量中的SQL語句讀取變量值,同時(shí)讀取同一SQL語句能讀取的其他變量值(即忽略SQL語句的條件部分所能讀取的變量值)(7)對讀取的數(shù)據(jù)進(jìn)行處理(如寫入監(jiān)控信息數(shù)據(jù)庫,告警等)(8)轉(zhuǎn)(3)(9)如果所有監(jiān)控表均已處理,轉(zhuǎn)(14)(10)獲取下一監(jiān)控表信息(11)按表中指定SQL語句讀取監(jiān)控信息(12)對讀取的數(shù)據(jù)進(jìn)行處理(如寫入監(jiān)控信息數(shù)據(jù)庫,告警等)(13)轉(zhuǎn)(9)(14)如果收到停止命令,轉(zhuǎn)(17)(15)休眠指定的時(shí)間間隔(采樣間隔)(16)轉(zhuǎn)(3)(17)停止。權(quán)利要求1.一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法,其特征在于使用配置文件描述各種需要監(jiān)控的數(shù)據(jù)庫,并使用統(tǒng)一的監(jiān)控程序,根據(jù)配置文件描述的監(jiān)控?cái)?shù)據(jù)項(xiàng),通過網(wǎng)絡(luò)連接讀取數(shù)據(jù)庫性能數(shù)據(jù);獲取性能數(shù)據(jù)后,把它跟預(yù)先規(guī)定的閾值相比較,如果需要觸發(fā)告警動(dòng)作;同時(shí)把數(shù)據(jù)寫入性能數(shù)據(jù)庫中。2.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法,其特征在于所述的配置文件配置文件中包含了監(jiān)控?cái)?shù)據(jù)庫對象數(shù)據(jù)項(xiàng)的各種信息,包括被監(jiān)控?cái)?shù)據(jù)庫的信息、數(shù)據(jù)項(xiàng)的標(biāo)識(shí)與分類、數(shù)據(jù)項(xiàng)的類型、數(shù)據(jù)項(xiàng)值的獲取方法;數(shù)據(jù)項(xiàng)分為兩類,分別為監(jiān)控變量和平坦表;配置文件采用Windows操作系統(tǒng)常見的ini文件格式。3.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法,其特征在于所述的監(jiān)控程序監(jiān)控程序讀取配置文件后,對讀取監(jiān)控?cái)?shù)據(jù)項(xiàng)的SQL語句進(jìn)行優(yōu)化,合并主體部分相同的語句,以減少對被監(jiān)控?cái)?shù)據(jù)庫的影響;監(jiān)控程序獲得監(jiān)控?cái)?shù)據(jù)后,把數(shù)據(jù)與預(yù)先設(shè)定的閾值相比較,對超出閾值的數(shù)據(jù)項(xiàng)進(jìn)行告警,并把所有數(shù)據(jù)項(xiàng)寫入性能數(shù)據(jù)庫。4.根據(jù)權(quán)利要求1所述的一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法,其特征在于所述的性能數(shù)據(jù)庫性能數(shù)據(jù)庫中的表分為兩類,對于平坦表,有與之結(jié)構(gòu)相同、但增加了時(shí)間和被監(jiān)控?cái)?shù)據(jù)庫標(biāo)識(shí)字段的數(shù)據(jù)表;對于監(jiān)控變量,性能數(shù)據(jù)庫中有三張表,分別描述變量的分類、變量的描述與閾值、變量的監(jiān)控?cái)?shù)據(jù)。全文摘要本發(fā)明公開了一種數(shù)據(jù)庫性能的無代理統(tǒng)一監(jiān)控方法。使用配置文件描述各種數(shù)據(jù)庫的需要監(jiān)控的內(nèi)容,包括需要監(jiān)控的數(shù)據(jù)項(xiàng)的信息、獲取數(shù)據(jù)的方法等。監(jiān)控程序讀取配置文件后對監(jiān)控規(guī)則進(jìn)行優(yōu)化,使需要執(zhí)行的查詢語句最少,并作為監(jiān)控?cái)?shù)據(jù)讀取模塊從數(shù)據(jù)庫提取性能數(shù)據(jù)的依據(jù)。接下來監(jiān)控程序根據(jù)配置周期性地從被監(jiān)控?cái)?shù)據(jù)庫中提取性能數(shù)據(jù),寫入性能數(shù)據(jù)庫中。本發(fā)明無需在被監(jiān)控端安裝代理即可實(shí)現(xiàn)對數(shù)據(jù)庫的監(jiān)控,減小了對數(shù)據(jù)庫監(jiān)控的安裝需求,令部署更加容易,同時(shí)只需提供不同的配置文件即可實(shí)現(xiàn)對各種數(shù)據(jù)庫的監(jiān)控,具有良好的伸縮性和可擴(kuò)展性。文檔編號(hào)G06F17/30GK101013442SQ200710067200公開日2007年8月8日申請日期2007年2月7日優(yōu)先權(quán)日2007年2月7日發(fā)明者王繼民,平玲娣,潘雪增,陳小平,陳健,趙英虎申請人:浙江大學(xué),黃裕欽