我們都知道有的時候因為一些異常的數據會導致周期性的產生,所以Oracle數據庫管理員就必須要了解關於幾個周期之內的相關數據,此時就需要延長這個循壞周期Oracle數據庫維護中的前瞻性 。
配置合適的時間參數。
在啟用自動工作負荷存儲庫之後,數據庫管理員還需要考慮一些時間上的分配問題。如這個自動負荷存儲庫表中的數據需要保存多久。由於數據庫運行統計信息的數量,隨著其級別的不同,數據量有多少。但是只要采用了Typical或者All這兩個級別後,其信息量還是很可觀的。故如果不定時清除這些數據的話,則這個表沒有多少時間就會占用很大的空間了。
為此這個表必須循環利用,以減少存儲空間。默認情況下,自動負荷存儲表中的內容只會被保存七天,也就是說這個表中存儲的是最近七天的數據庫運行信息。但是如果數據庫環境設計比較復雜可能會產生大量的統計信息,則此時數據庫管理員就需要縮短這個時間。
而有時候某些異常數據可能會周期性的出現,故Oracle數據庫管理員需要了解幾個周期之內的數據,此時就需要延長這個循壞周期。為此數據庫管理員要能夠更改這個周期,以方便其工作。如果數據庫管理員需要跟該這個周期的話,那麼就需要執行Dbms_Workload_Reposttory程序,設置其中的retention參數。
注意這裡是用分鐘為單位。如果數據庫管理員想要把這個時間設置為10天的話,則就需要把這個參數設置為60*24*10=14400分鐘。注意這裡是以分鐘為單位。如果數據庫管理員不知道這個內容或者誤以為這裡是以天為單位的,而把這個參數設置為10的話,那麼這個工作負荷存儲庫表中就不會記錄有價值的信息。
另外,默認情況下工作負荷存儲庫的內存監視器是每60分鐘收集一下信息。不過有時候數據庫管理員可能需要根據實際情況來縮短這個統計的周期或者嚴懲周期。如為了測試的需要要把這個周期縮短為10分鐘以判斷是否正常啟用了自動工作負荷存儲庫時,就需要把這個周期縮短。
此時也是采用如上那個程序,不過參數是interval了。如果要把這個時間調整為30分鐘,則只需要把這個參數設置為30即可。注意此時這裡是以分鐘為單位。如果此時數據庫管理員要讓這個工作負荷存儲庫表保留10天的紀錄,同時每隔30分鐘統計數據庫運行的信息,就可以執行以下的命令來完成:
- Execute Dbms_Workload_Reposttory.
modify_snapshot_settings- (interval=30,retention=14400)
即可以完成如上的需求。筆者再次強調一下,這個命令中都是以分鐘為單位的。另外,如果同時縮短統計周期並延長工作負荷存儲庫表的存儲周期,那麼在這兩個因素的共同作用下,這個表的容量會很快的膨脹起來。Oracle數據庫管理員需要注意這個問題。
通常情況下,筆者建議可以縮短這個統計周期,但是不建議延長表的存儲周期。如果數據庫管理員確實需要一段時期內的性能數據的話,則可以先把這個表導出來進行備份。這可以避免工作負荷存儲表對數據庫表空間的侵蝕。再者,縮短內存監視器收集系統統計數據周期會增加Oracle數據庫的額外開銷,這也是數據庫管理員在調整這兩個參數時需要注意到的內容。