使用度量基線技術(shù)實(shí)現(xiàn)Oracle自我監(jiān)控
如數(shù)據(jù)庫(kù)管理員現(xiàn)在需要讓Oracle數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行自我監(jiān)視。當(dāng)服務(wù)器的CPU使用率達(dá)到多少的時(shí)候,自動(dòng)向數(shù)據(jù)庫(kù)管理員報(bào)警;或者到表空間的使用量達(dá)到全部***容量的90%時(shí)自動(dòng)提醒數(shù)據(jù)庫(kù)管理員等等。這些功能對(duì)于數(shù)據(jù)庫(kù)管理員來(lái)說(shuō),肯定非常的實(shí)用。在Oracle數(shù)據(jù)庫(kù)系統(tǒng)的企業(yè)管理器中提供了多種方式幫助管理員監(jiān)視Oracle應(yīng)用環(huán)境。在每個(gè)監(jiān)視主機(jī)上的Oracle管理代理能夠監(jiān)視主機(jī)上所有目標(biāo)的狀態(tài)、性能和健康情況。如故目標(biāo)對(duì)象發(fā)生故障或者性能度達(dá)到預(yù)警閥值,數(shù)據(jù)庫(kù)系統(tǒng)就會(huì)生成預(yù)警,并通過(guò)一定的渠道告訴給數(shù)據(jù)庫(kù)管理員。可見(jiàn)這個(gè)數(shù)據(jù)庫(kù)系統(tǒng)的自我監(jiān)視功能,可以代替數(shù)據(jù)庫(kù)管理員的眼睛。
但是,這個(gè)自我監(jiān)視功能要起作用的話,則離不開(kāi)度量基線。度量基線就是一個(gè)技術(shù)指標(biāo),告訴企業(yè)管理器,當(dāng)某個(gè)指標(biāo)達(dá)到這個(gè)度量基線或者超過(guò)多少時(shí),執(zhí)行某項(xiàng)動(dòng)作。所以,度量基線的管理對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)的自我監(jiān)視功能非常關(guān)鍵。如果這個(gè)度量基線設(shè)置的高了,那么就起不到監(jiān)視的作用。等到系統(tǒng)報(bào)警時(shí),可能數(shù)據(jù)庫(kù)已經(jīng)崩潰掉了。如果這個(gè)度量基線設(shè)置的比較低,那么數(shù)據(jù)庫(kù)會(huì)頻繁的報(bào)無(wú)效的警。反而會(huì)因?yàn)樘^(guò)于靈敏而給數(shù)據(jù)庫(kù)管理員造成不必要的麻煩。所以度量基線的設(shè)置對(duì)于Oracle數(shù)據(jù)庫(kù)來(lái)說(shuō)非常的關(guān)鍵。
一、 度量基線設(shè)置的基本步驟
設(shè)置度量基線其實(shí)不是很難。只需要簡(jiǎn)單幾個(gè)步驟就可以完成度量基線的設(shè)置。其難點(diǎn)在于如何設(shè)置才是合理的。下面筆者就結(jié)合度量基線設(shè)置的內(nèi)容來(lái)談?wù)勗趺丛O(shè)置一個(gè)合理的度量基線。
進(jìn)入Oracle的企業(yè)管理器,打開(kāi)創(chuàng)建度量基線的頁(yè)簽。在這個(gè)頁(yè)簽上,就可以來(lái)設(shè)置度量基線的所有內(nèi)容。然后數(shù)據(jù)庫(kù)系統(tǒng)會(huì)自動(dòng)根據(jù)這里的設(shè)置來(lái)計(jì)算閥值。在創(chuàng)建度量基線時(shí),選擇目標(biāo)性能在典型工作量下處于克接受范圍內(nèi)的日期和時(shí)間段,這是建立一個(gè)合理的度量基線的基本準(zhǔn)則。具體的來(lái)說(shuō),要設(shè)置一個(gè)度量基線,需要設(shè)置一下具體的參數(shù)。
一是度量基線的名稱。由于數(shù)據(jù)庫(kù)可以同時(shí)監(jiān)視多個(gè)數(shù)據(jù)庫(kù)對(duì)象以及Oracle應(yīng)用環(huán)境,為此需要給度量基線取一個(gè)合適的名字。這對(duì)于數(shù)據(jù)庫(kù)管理員后續(xù)的維護(hù)具有很重要的意義。做好在基線的名稱中,能夠體現(xiàn)所監(jiān)控對(duì)象的名字。如此數(shù)據(jù)庫(kù)管理員就可以一目了然的知道這個(gè)度量基線主要用來(lái)監(jiān)控什么對(duì)象的。另外,數(shù)據(jù)庫(kù)管理員還可以對(duì)某個(gè)對(duì)象的不同時(shí)刻的性能進(jìn)行監(jiān)視。如可能晚上12點(diǎn)到2點(diǎn)主要用來(lái)進(jìn)行數(shù)據(jù)庫(kù)備份,那么就可以設(shè)置一個(gè)基線來(lái)監(jiān)視此時(shí)的作業(yè)。幫助管理員判斷數(shù)據(jù)庫(kù)備份作業(yè)發(fā)生時(shí)的Oracle應(yīng)用環(huán)境。此時(shí),在定義度量基線名字的時(shí)候,***能夠包含時(shí)間信息。這些建議都可以提高度量基線名字的可讀性。
二、設(shè)置“一天中的小時(shí)”
筆者個(gè)人認(rèn)為,這個(gè)參數(shù)很關(guān)鍵。如果管理員選擇了“一天中的小時(shí)”這個(gè)參數(shù),則用戶度量基線的結(jié)果數(shù)值是前幾個(gè)小時(shí)內(nèi)的累積值。這在數(shù)據(jù)庫(kù)測(cè)試的時(shí)候非常有用。如用戶在數(shù)據(jù)庫(kù)設(shè)計(jì)的時(shí)候,可能在某個(gè)時(shí)段內(nèi)設(shè)計(jì)了一些自動(dòng)化作業(yè)。數(shù)據(jù)庫(kù)管理員需要測(cè)試一下這些作業(yè)發(fā)生時(shí),會(huì)否觸發(fā)系統(tǒng)報(bào)警作業(yè)。此時(shí),數(shù)據(jù)庫(kù)管理員就可以設(shè)置這個(gè)參數(shù)。如管理員選擇的一天中的小時(shí)數(shù)設(shè)置為12。則數(shù)據(jù)庫(kù)系統(tǒng)就會(huì)采用上午10點(diǎn)到11點(diǎn)之間的數(shù)據(jù)作為度量的基礎(chǔ)。如果這個(gè)一個(gè)小時(shí)內(nèi)的度量平均值超過(guò)了用戶定義的百分比,則系統(tǒng)就會(huì)報(bào)警。故靈活設(shè)置這個(gè)參數(shù),可以幫助管理員及時(shí)了解某個(gè)特定時(shí)段或者某個(gè)特定作業(yè)的數(shù)據(jù)庫(kù)性能。在測(cè)量觸發(fā)器等Oracle子程序的性能對(duì)于數(shù)據(jù)庫(kù)的影響,非常有作用。
三、設(shè)置警告的百分比或者嚴(yán)重百分比
讓系統(tǒng)在沒(méi)達(dá)到極限值之前報(bào)警還是超過(guò)了一定的比例之后再報(bào)警呢。這需要數(shù)據(jù)庫(kù)管理員根據(jù)實(shí)際情況來(lái)設(shè)置這個(gè)參數(shù)。如某個(gè)用戶的表空間容量可能為10G。當(dāng)數(shù)據(jù)庫(kù)管員監(jiān)視這個(gè)對(duì)象,把這個(gè)對(duì)象的基線置設(shè)置為10G之后,那么管理員肯定不希望其使用兩已經(jīng)達(dá)到10G的時(shí)候再來(lái)報(bào)警。此時(shí),數(shù)據(jù)庫(kù)系統(tǒng) 已經(jīng)因?yàn)楸砜臻g達(dá)到***限度而發(fā)生了數(shù)據(jù)丟失的情況。管理員希望當(dāng)表空間的使用量達(dá)到90%時(shí)就給管理員報(bào)警。讓管理員能夠提早介入,從而防止意外的損失。為此,可以通過(guò)度量數(shù)據(jù)的下限值與上限值來(lái)定義。在度量數(shù)據(jù)表中,有下限值和上限值兩個(gè)文本框。在這兩個(gè)文本框中填入數(shù)據(jù)之后,系統(tǒng)便可以根據(jù)度量基線值使用這些百分比來(lái)計(jì)算建議的度量閥置。注意,這里需要輸入百分比的值。如要設(shè)置低于基線值20%的時(shí)候,發(fā)生報(bào)警時(shí),就輸入20即可。不用輸入百分號(hào)。
在度量基線值設(shè)置過(guò)程中,這個(gè)百分比是最有技巧的地方。因?yàn)槠渲苯雨P(guān)系到在什么時(shí)候觸發(fā)某個(gè)報(bào)警作業(yè)。這個(gè)值到底設(shè)置為多少比較合適,往往是公說(shuō)公有理、婆說(shuō)婆有理,沒(méi)有一個(gè)標(biāo)準(zhǔn)的答案。筆者認(rèn)為,這需要根據(jù)企業(yè)的實(shí)際情況進(jìn)行調(diào)整。如數(shù)據(jù)庫(kù)管理員剛開(kāi)始可以設(shè)置一個(gè)比較低的基線閥值,然后根據(jù)報(bào)警事件的有效性來(lái)逐步對(duì)此進(jìn)行調(diào)整。這個(gè)調(diào)整的過(guò)程可能需要半年甚至更長(zhǎng)的時(shí)間。雖然這個(gè)過(guò)程比較長(zhǎng),但是相對(duì)于自動(dòng)化監(jiān)視給數(shù)據(jù)庫(kù)管理員帶來(lái)的收益來(lái)講,也是值得的。
四、 度量基線設(shè)置的便捷方法
如果有一個(gè)個(gè)的去設(shè)置對(duì)象的度量基線,難度會(huì)比較大。而且沒(méi)有基礎(chǔ)數(shù)據(jù)的話,喬木難為無(wú)米之炊,這個(gè)度量基線更加難以設(shè)置。那么度量基線設(shè)置有沒(méi)有一些便捷的方法呢?筆者這里就給大家介紹一些方法。
一是根據(jù)企業(yè)的實(shí)際應(yīng)用情況來(lái)選擇合適的監(jiān)視對(duì)象。企業(yè)管理起的監(jiān)視對(duì)象有多大數(shù)十種。數(shù)據(jù)庫(kù)管理員沒(méi)有必要一一為其設(shè)置度量值。管理員只需要根據(jù)數(shù)據(jù)庫(kù)服務(wù)器的實(shí)際情況,來(lái)進(jìn)行設(shè)置。如對(duì)于表空間的限制,就需要根據(jù)不同的情況來(lái)對(duì)待。如用戶的表空間沒(méi)有進(jìn)行容量的限制,那么就沒(méi)有必要對(duì)表空間對(duì)象進(jìn)行監(jiān)視。但是,表空間大小仍然受到硬盤空間***容量的限制。雖然沒(méi)有必要對(duì)用戶的表空間大小設(shè)置度量值,但是仍然有必要對(duì)硬盤的使用量進(jìn)行監(jiān)視。如果硬盤的使用率達(dá)到某個(gè)程度時(shí),仍然需要對(duì)數(shù)據(jù)庫(kù)管理員提出警告。但是,這已經(jīng)省了不少的功夫。因?yàn)槿绻粋€(gè)數(shù)據(jù)庫(kù)管理員有多個(gè)表空間,為每個(gè)表空間設(shè)置度量值的話,工作量就會(huì)比較大。而現(xiàn)在只需要為一個(gè)硬盤設(shè)置度量值即可。所以說(shuō),度量基線設(shè)置的***個(gè)便捷方法就是選擇合適的監(jiān)視對(duì)象。在大部分情況下,沒(méi)有必要為全部的對(duì)象設(shè)置度量值。
二是根據(jù)服務(wù)器操作系統(tǒng)的任務(wù)進(jìn)程來(lái)設(shè)置度量值。在數(shù)據(jù)庫(kù)服務(wù)器的操作進(jìn)程中,數(shù)據(jù)庫(kù)管理員可以收集到一些對(duì)度量基線設(shè)置很有幫助的值。如CPU、內(nèi)存的使用率等等。如果數(shù)據(jù)庫(kù)管理員發(fā)現(xiàn)數(shù)據(jù)庫(kù)性能下降的時(shí)候,是由于CPU、內(nèi)存使用過(guò)高所造成的。那么數(shù)據(jù)庫(kù)管理員就可以在自己懷疑對(duì)象的上面設(shè)置這個(gè)度量值?;蛘邔?duì)內(nèi)存等硬件進(jìn)行升級(jí)后再設(shè)置度量值。這可以幫助數(shù)據(jù)庫(kù)管理員追蹤硬件升級(jí)的效果。數(shù)據(jù)庫(kù)系統(tǒng)與操作系統(tǒng)是難兄難弟,兩者的性能彼此之間有很大的影響。所以根據(jù)服務(wù)器操作系統(tǒng)所收集的數(shù)據(jù),可以作為Orcle數(shù)據(jù)庫(kù)度量值的參考。況且不少服務(wù)器操作系統(tǒng)本身就配置了相關(guān)的性能檢測(cè)參數(shù)。此時(shí)這些參數(shù)可以直接作為數(shù)據(jù)庫(kù)管理員設(shè)置數(shù)據(jù)庫(kù)度量基線的參考數(shù)據(jù)。
三是在剛開(kāi)始的時(shí)候不需要設(shè)置度量基線。等數(shù)據(jù)庫(kù)在企業(yè)中運(yùn)行一段時(shí)間內(nèi),數(shù)據(jù)庫(kù)管理員就可以收集到相關(guān)的影響數(shù)據(jù)庫(kù)性能的瓶頸資源。根據(jù)這些以前的性能可以幫助管理員設(shè)置合理的度量基線。這對(duì)于大部分企業(yè)來(lái)說(shuō),可能是一個(gè)比較實(shí)用的度量基線設(shè)置方法。隨著應(yīng)用軟件應(yīng)用的深入,對(duì)于數(shù)據(jù)庫(kù)系統(tǒng)的考驗(yàn)也會(huì)越來(lái)越大。當(dāng)使用了一段時(shí)間之后,數(shù)據(jù)庫(kù)管理員再根據(jù)前一段時(shí)間收集起來(lái)的性能相關(guān)數(shù)據(jù)。有了這堆數(shù)據(jù)的支持,那么管理員設(shè)置合理的度量曲線就會(huì)簡(jiǎn)單的多。
【編輯推薦】