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