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