熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle:數據庫運維管理要做好實時監控

2013-11-13 15:37:02  來源: Oracle 

  作為核心IT業務模塊數據庫的重要性毋庸置疑

  管理數據庫在做好系統前期部署後在系統持續運行中需要時刻關注系統自身和環境等對於運行可能產生的潛在影響和可能的危險並及時予以處理

  通常我們把數據庫運維管理工作分為反應性與前瞻性兩種

  反應性監視是指在已經出現一個性能或者管理問題後再對數據庫進行監視例如有員工向數據庫管理員反應應用系統的速度比較慢數據庫管員跟其他技術人員共同會診後發現是由於數據庫的原因所造成的此時數據庫管理員就需要使用相關的工具來收集數據庫的運行數據以查明問題發生的原因雖然這最終也可以順利把問題解決但是這畢竟與優秀數據庫管理員心中的期望還有一點距離因此反應性監視有點像放馬後炮的感覺問題已經出現即使數據庫管理員能夠在最短時間內查明原因解決問題但是畢竟對於用戶產生了一些不利的影響故數據庫管理員希望能夠在故障發生之前就能夠了解導致這個故障發生的原因並及時采取有效措施預防這種故障的最終發生這就使數據庫管理員所期待的前瞻性監視

  前暫性監視可以讓數據庫管理員在問題出現之前期間或者之後查處並響應數據庫常見的性能與管理問題簡單的說在某一個數據庫故障發生之前都會有一些征兆這就好像一些自然災害發生時像螞蟻燕子等等都會有一些異常的反應數據庫管理員有必要了解這些征兆如此的話我們才能夠把這些問題消除來萌芽狀態防止問題的擴大

  Oracle數據庫設計者們也一直在往這個方向努力如在G以後的數據庫版本中就有了一個自動工作負荷儲存庫的功能來幫助數據庫管理員收集在數據庫運行中的異常數據通過這些數據的幫助數據庫管理員可以搶在數據庫故障發生之前把問題解決了

  一自動工作負荷存儲庫的特點

  自動工作負荷存儲庫主要是通過兩個回退進程實現的分別為內存監視器與內存監視燈這兩個進程是一對雙胞胎數據他們可以給數據庫管理員帶來很大的幫助如這兩個進程會相互合作從數據庫系統全局區中直接收集性能統計數據如數據庫服務器CPU內存的使用率等等其中內存監視器在其中擔任主要角色默認情況下內存監視器每個小時會啟動一次並從數據動態性能視圖數據庫目錄視圖和數據庫優化器中收集性能等相關的統計信息然後會把這些信息存儲在數據庫的表中這個表就叫做自動工作負荷存儲庫表通常情況下這個表被Sysman用戶所擁有並被存儲在Sysaux表空間中

  二啟用自動工作負荷存儲庫並進行相關的配置

  如果數據庫管理員需要啟用這個自動工作負荷存儲庫功能則需要手工對此啟動默認情況下數據庫是不會啟動這項功能的筆者的意見是在數據庫設計或者測試的時候不用啟動這項功能畢竟其本身需要耗用服務器一定的資源但是在生產服務器(即企業已經在使用的Oracle數據庫)系統中最好啟用這項功能以幫助數據庫管理員自動收集數據庫的運行性能信息以實現前瞻性監視的目標

  如果想要啟用自動工作負荷存儲庫功能則需要配置數據庫中的Statistics_level這個參數這個參數主要有三個值用來決定內存監視器進程收集統計數據的深度與頻率等等如數據庫的規模比較小或者應用時間不長的話可以把這個參數設置為Basic在這個參數下數據庫雖然已經啟用了自動工作負荷存儲庫但是會禁用這項功能的大多數爭端監視以及顧問活動也就是說此時數據庫管理員啟動數據庫實例時系統只會收集少量的數據庫運行時的統計數據當數據庫規模比較大時這些數據往往不能夠幫助數據庫管理員排查故障發生的原因如果數據庫設計比較復雜或者企業對於數據庫的性能要求比較高則此時數據庫管理員可以把這個參數設置為ALL這是自動工作負荷存儲庫收集統計數據的最高級別在這個級別下內存監視器將會捕獲大部分的統計數據同時還會收集來自操作系統的執行計劃和定時信息如Oracle數據庫的自動備份有時候需要操作系統的任務計劃的幫助下才能夠完成那麼此時數據庫管理員就需要考慮數據庫性能下降的原因是否跟這個操作系統的任務計劃有關此時內存監視器收集起來的跟操作系統相關的計劃與定時信息就會非常的有用不過有時候數據庫管理員可能只需要收集數據庫自深的運行信息而不需要操作系統的相關信息此時就可以把這個參數設置為Typical這個參數是自動工作負荷存儲庫的標准級別他會收集跟數據庫自深相關的統計信息

  數據庫管理員可以根據企業對數據庫性能的要求可以允許數據庫當機的時間服務器的配置等因素來考慮要選擇的級別通常情況下如果在同一個服務器中除了Oracle數據庫外還部署了其他應用服務的話那麼筆者建議最好采用All級別此時數據庫管理員可以知道盡可能多的信息幫助管理員及早把問題消除掉

  三配置合適的時間參數

  在啟用自動工作負荷存儲庫之後數據庫管理員還需要考慮一些時間上的分配問題如這個自動負荷存儲庫表中的數據需要保存多久由於數據庫運行統計信息的數量隨著其級別的不同數據量有多少但是只要采用了Typical或者All這兩個級別後其信息量還是很可觀的故如果不定時清除這些數據的話則這個表沒有多少時間就會占用很大的空間了為此這個表必須循環利用以減少存儲空間默認情況下自動負荷存儲表中的內容只會被保存七天也就是說這個表中存儲的是最近七天的數據庫運行信息但是如果數據庫環境設計比較復雜可能會產生大量的統計信息則此時數據庫管理員就需要縮短這個時間而有時候某些異常數據可能會周期性的出現故數據庫管理員需要了解幾個周期之內的數據此時就需要延長這個循壞周期為此數據庫管理員要能夠更改這個周期以方便其工作如果數據庫管理員需要跟該這個周期的話那麼就需要執行Dbms_Workload_Reposttory程序設置其中的retention參數注意這裡是用分鐘為單位如果數據庫管理員想要把這個時間設置為天的話則就需要把這個參數設置為**=分鐘注意這裡是以分鐘為單位如果數據庫管理員不知道這個內容或者誤以為這裡是以天為單位的而把這個參數設置為的話那麼這個工作負荷存儲庫表中就不會記錄有價值的信息

  另外默認情況下工作負荷存儲庫的內存監視器是每分鐘收集一下信息不過有時候數據庫管理員可能需要根據實際情況來縮短這個統計的周期或者嚴懲周期如為了測試的需要要把這個周期縮短為分鐘以判斷是否正常啟用了自動工作負荷存儲庫時就需要把這個周期縮短此時也是采用如上那個程序不過參數是interval了如果要把這個時間調整為分鐘則只需要把這個參數設置為即可注意此時這裡是以分鐘為單位如果此時數據庫管理員要讓這個工作負荷存儲庫表保留天的紀錄同時每隔分鐘統計數據庫運行的信息就可以執行以下的命令來完成Execute Dbms_Workload_Reposttorymodify_snapshot_settings(interval=retention=)即可以完成如上的需求筆者再次強調一下這個命令中都是以分鐘為單位的另外如果同時縮短統計周期並延長工作負荷存儲庫表的存儲周期那麼在這兩個因素的共同作用下這個表的容量會很快的膨脹起來數據庫管理員需要注意這個問題通常情況下筆者建議可以縮短這個統計周期但是不建議延長表的存儲周期如果數據庫管理員確實需要一段時期內的性能數據的話則可以先把這個表導出來進行備份這可以避免工作負荷存儲表對數據庫表空間的侵蝕再者縮短內存監視器收集系統統計數據周期會增加數據庫的額外開銷這也是數據庫管理員在調整這兩個參數時需要注意到的內容


From:http://tw.wingwit.com/Article/program/Oracle/201311/17015.html
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.