IT貓撲網(wǎng):您身邊最放心的安全下載站! 最新更新|軟件分類|軟件專題|手機(jī)版|論壇轉(zhuǎn)貼|軟件發(fā)布

您當(dāng)前所在位置: 首頁(yè)數(shù)據(jù)庫(kù)Oracle → Oracle數(shù)據(jù)庫(kù)維護(hù)中的前瞻性

Oracle數(shù)據(jù)庫(kù)維護(hù)中的前瞻性

時(shí)間:2015-06-28 00:00:00 來(lái)源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評(píng)論(0)

?? 數(shù)據(jù)庫(kù)管理員必須自始自終都密切關(guān)注可能會(huì)對(duì)他們所管理的各個(gè)系統(tǒng)的可用性或者性能有負(fù)面影響的潛在數(shù)據(jù)庫(kù)問(wèn)題。通常情況下,可以把數(shù)據(jù)庫(kù)管理員監(jiān)視、維護(hù)系統(tǒng)的方式分為兩種,分別為反應(yīng)性監(jiān)視與前瞻性監(jiān)視。

?? 如上圖所示,反應(yīng)性監(jiān)視是指在已經(jīng)出現(xiàn)一個(gè)性能或者管理問(wèn)題后再對(duì)數(shù)據(jù)庫(kù)進(jìn)行監(jiān)視。例如有員工向數(shù)據(jù)庫(kù)管理員反應(yīng)應(yīng)用系統(tǒng)的速度比較慢。數(shù)據(jù)庫(kù)管員跟其他技術(shù)人員共同會(huì)診后發(fā)現(xiàn)是由于數(shù)據(jù)庫(kù)的原因所造成的。此時(shí)數(shù)據(jù)庫(kù)管理員就需要使用相關(guān)的工具來(lái)收集數(shù)據(jù)庫(kù)的運(yùn)行數(shù)據(jù),以查明問(wèn)題發(fā)生的原因。雖然這最終也可以順利把問(wèn)題解決,但是這畢竟與優(yōu)秀數(shù)據(jù)庫(kù)管理員心中的期望還有一點(diǎn)距離。因此反應(yīng)性監(jiān)視有點(diǎn)像放馬后炮的感覺。問(wèn)題已經(jīng)出現(xiàn),即使數(shù)據(jù)庫(kù)管理員能夠在最短時(shí)間內(nèi)查明原因、解決問(wèn)題,但是畢竟對(duì)于用戶產(chǎn)生了一些不利的影響。故數(shù)據(jù)庫(kù)管理員希望能夠在故障發(fā)生之前就能夠了解導(dǎo)致這個(gè)故障發(fā)生的原因,并及時(shí)采取有效措施預(yù)防這種故障的最終發(fā)生。這就使數(shù)據(jù)庫(kù)管理員所期待的前瞻性監(jiān)視。

?? 前瞻性監(jiān)視可以讓數(shù)據(jù)庫(kù)管理員在問(wèn)題出現(xiàn)之前、期間或者之后查處并響應(yīng)數(shù)據(jù)庫(kù)常見的性能與管理問(wèn)題。簡(jiǎn)單的說(shuō),在某一個(gè)數(shù)據(jù)庫(kù)故障發(fā)生之前,都會(huì)有一些征兆。這就好像一些自然災(zāi)害發(fā)生時(shí),像螞蟻、燕子等等都會(huì)有一些異常的反應(yīng)。數(shù)據(jù)庫(kù)管理員有必要了解這些征兆。如此的話,我們才能夠把這些問(wèn)題消除來(lái)萌芽狀態(tài),防止問(wèn)題的擴(kuò)大。

?? Oracle數(shù)據(jù)庫(kù)設(shè)計(jì)者們也一直在往這個(gè)方向努力。如在10G以后的數(shù)據(jù)庫(kù)版本中,就有了一個(gè)自動(dòng)工作負(fù)荷儲(chǔ)存庫(kù)的功能,來(lái)幫助數(shù)據(jù)庫(kù)管理員收集在數(shù)據(jù)庫(kù)運(yùn)行中的異常數(shù)據(jù)。通過(guò)這些數(shù)據(jù)的幫助,數(shù)據(jù)庫(kù)管理員可以搶在數(shù)據(jù)庫(kù)故障發(fā)生之前把問(wèn)題解決了。

?? 一、自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)的特點(diǎn)。

?? 自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)主要是通過(guò)兩個(gè)回退進(jìn)程實(shí)現(xiàn)的,分別為內(nèi)存監(jiān)視器與內(nèi)存監(jiān)視燈。這兩個(gè)進(jìn)程是一對(duì)雙胞胎數(shù)據(jù),他們可以給數(shù)據(jù)庫(kù)管理員帶來(lái)很大的幫助。如這兩個(gè)進(jìn)程會(huì)相互合作,從數(shù)據(jù)庫(kù)系統(tǒng)全局區(qū)中直接收集性能統(tǒng)計(jì)數(shù)據(jù)。如數(shù)據(jù)庫(kù)服務(wù)器CPU內(nèi)存的使用率等等。其中內(nèi)存監(jiān)視器在其中擔(dān)任主要角色。默認(rèn)情況下,內(nèi)存監(jiān)視器每個(gè)小時(shí)會(huì)啟動(dòng)一次,并從數(shù)據(jù)動(dòng)態(tài)性能視圖、數(shù)據(jù)庫(kù)目錄視圖和數(shù)據(jù)庫(kù)優(yōu)化器中收集性能等相關(guān)的統(tǒng)計(jì)信息,然后會(huì)把這些信息存儲(chǔ)在數(shù)據(jù)庫(kù)的表中。這個(gè)表就叫做自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)表。通常情況下,這個(gè)表被Sysman用戶所擁有,并被存儲(chǔ)在Sysaux表空間中。

?? 二、啟用自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)并進(jìn)行相關(guān)的配置。

?? 如果數(shù)據(jù)庫(kù)管理員需要啟用這個(gè)自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)功能,則需要手工對(duì)此啟動(dòng)。默認(rèn)情況下數(shù)據(jù)庫(kù)是不會(huì)啟動(dòng)這項(xiàng)功能的。筆者的意見是,在數(shù)據(jù)庫(kù)設(shè)計(jì)或者測(cè)試的時(shí)候,不用啟動(dòng)這項(xiàng)功能。畢竟其本身需要耗用服務(wù)器一定的資源。但是在生產(chǎn)服務(wù)器(即企業(yè)已經(jīng)在使用的Oracle數(shù)據(jù)庫(kù))系統(tǒng)中,最好啟用這項(xiàng)功能。以幫助數(shù)據(jù)庫(kù)管理員自動(dòng)收集數(shù)據(jù)庫(kù)的運(yùn)行性能信息,以實(shí)現(xiàn)前瞻性監(jiān)視的目標(biāo)。

?? 如果想要啟用自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)功能,則需要配置數(shù)據(jù)庫(kù)中的Statistics_level這個(gè)參數(shù)。這個(gè)參數(shù)主要有三個(gè)值,用來(lái)決定內(nèi)存監(jiān)視器進(jìn)程收集統(tǒng)計(jì)數(shù)據(jù)的深度與頻率等等。如數(shù)據(jù)庫(kù)的規(guī)模比較小或者應(yīng)用時(shí)間不長(zhǎng)的話,可以把這個(gè)參數(shù)設(shè)置為Basic。在這個(gè)參數(shù)下,數(shù)據(jù)庫(kù)雖然已經(jīng)啟用了自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù),但是會(huì)禁用這項(xiàng)功能的大多數(shù)爭(zhēng)端監(jiān)視以及顧問(wèn)活動(dòng)。也就是說(shuō),此時(shí)數(shù)據(jù)庫(kù)管理員啟動(dòng)數(shù)據(jù)庫(kù)實(shí)例時(shí),系統(tǒng)只會(huì)收集少量的數(shù)據(jù)庫(kù)運(yùn)行時(shí)的統(tǒng)計(jì)數(shù)據(jù)。當(dāng)數(shù)據(jù)庫(kù)規(guī)模比較大時(shí)這些數(shù)據(jù)往往不能夠幫助數(shù)據(jù)庫(kù)管理員排查故障發(fā)生的原因。如果數(shù)據(jù)庫(kù)設(shè)計(jì)比較復(fù)雜或者企業(yè)對(duì)于數(shù)據(jù)庫(kù)的性能要求比較高,則此時(shí)數(shù)據(jù)庫(kù)管理員可以把這個(gè)參數(shù)設(shè)置為ALL,這是自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)收集統(tǒng)計(jì)數(shù)據(jù)的最高級(jí)別。在這個(gè)級(jí)別下,內(nèi)存監(jiān)視器將會(huì)捕獲大部分的統(tǒng)計(jì)數(shù)據(jù),同時(shí)還會(huì)收集來(lái)自操作系統(tǒng)的執(zhí)行計(jì)劃和定時(shí)信息。如Oracle數(shù)據(jù)庫(kù)的自動(dòng)備份有時(shí)候需要操作系統(tǒng)的任務(wù)計(jì)劃的幫助下才能夠完成。那么此時(shí)數(shù)據(jù)庫(kù)管理員就需要考慮數(shù)據(jù)庫(kù)性能下降的原因是否跟這個(gè)操作系統(tǒng)的任務(wù)計(jì)劃有關(guān)。此時(shí)內(nèi)存監(jiān)視器收集起來(lái)的跟操作系統(tǒng)相關(guān)的計(jì)劃與定時(shí)信息就會(huì)非常的有用。不過(guò)有時(shí)候數(shù)據(jù)庫(kù)管理員可能只需要收集數(shù)據(jù)庫(kù)自深的運(yùn)行信息,而不需要操作系統(tǒng)的相關(guān)信息。此時(shí)就可以把這個(gè)參數(shù)設(shè)置為Typical。這個(gè)參數(shù)是自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)的標(biāo)準(zhǔn)級(jí)別,他會(huì)收集跟數(shù)據(jù)庫(kù)自深相關(guān)的統(tǒng)計(jì)信息。

?? 數(shù)據(jù)庫(kù)管理員可以根據(jù)企業(yè)對(duì)數(shù)據(jù)庫(kù)性能的要求、可以允許數(shù)據(jù)庫(kù)當(dāng)機(jī)的時(shí)間、服務(wù)器的配置等因素來(lái)考慮要選擇的級(jí)別。通常情況下,如果在同一個(gè)服務(wù)器中,除了Oracle數(shù)據(jù)庫(kù)外還部署了其他應(yīng)用服務(wù)的話,那么筆者建議最好采用All級(jí)別。此時(shí)數(shù)據(jù)庫(kù)管理員可以知道盡可能多的信息,幫助管理員及早把問(wèn)題消除掉。

?? 三、配置合適的時(shí)間參數(shù)。

?? 在啟用自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)之后,數(shù)據(jù)庫(kù)管理員還需要考慮一些時(shí)間上的分配問(wèn)題。如這個(gè)自動(dòng)負(fù)荷存儲(chǔ)庫(kù)表中的數(shù)據(jù)需要保存多久。由于數(shù)據(jù)庫(kù)運(yùn)行統(tǒng)計(jì)信息的數(shù)量,隨著其級(jí)別的不同,數(shù)據(jù)量有多少。但是只要采用了Typical或者All這兩個(gè)級(jí)別后,其信息量還是很可觀的。故如果不定時(shí)清除這些數(shù)據(jù)的話,則這個(gè)表沒有多少時(shí)間就會(huì)占用很大的空間了。為此這個(gè)表必須循環(huán)利用,以減少存儲(chǔ)空間。默認(rèn)情況下,自動(dòng)負(fù)荷存儲(chǔ)表中的內(nèi)容只會(huì)被保存七天,也就是說(shuō)這個(gè)表中存儲(chǔ)的是最近七天的數(shù)據(jù)庫(kù)運(yùn)行信息。但是如果數(shù)據(jù)庫(kù)環(huán)境設(shè)計(jì)比較復(fù)雜可能會(huì)產(chǎn)生大量的統(tǒng)計(jì)信息,則此時(shí)數(shù)據(jù)庫(kù)管理員就需要縮短這個(gè)時(shí)間。而有時(shí)候某些異常數(shù)據(jù)可能會(huì)周期性的出現(xiàn),故數(shù)據(jù)庫(kù)管理員需要了解幾個(gè)周期之內(nèi)的數(shù)據(jù),此時(shí)就需要延長(zhǎng)這個(gè)循壞周期。為此數(shù)據(jù)庫(kù)管理員要能夠更改這個(gè)周期,以方便其工作。如果數(shù)據(jù)庫(kù)管理員需要跟該這個(gè)周期的話,那么就需要執(zhí)行Dbms_Workload_Reposttory程序,設(shè)置其中的retention參數(shù)。注意這里是用分鐘為單位。如果數(shù)據(jù)庫(kù)管理員想要把這個(gè)時(shí)間設(shè)置為10天的話,則就需要把這個(gè)參數(shù)設(shè)置為60*24*10=14400分鐘。注意這里是以分鐘為單位。如果數(shù)據(jù)庫(kù)管理員不知道這個(gè)內(nèi)容或者誤以為這里是以天為單位的,而把這個(gè)參數(shù)設(shè)置為10的話,那么這個(gè)工作負(fù)荷存儲(chǔ)庫(kù)表中就不會(huì)記錄有價(jià)值的信息。

?? 另外,默認(rèn)情況下工作負(fù)荷存儲(chǔ)庫(kù)的內(nèi)存監(jiān)視器是每60分鐘收集一下信息。不過(guò)有時(shí)候數(shù)據(jù)庫(kù)管理員可能需要根據(jù)實(shí)際情況來(lái)縮短這個(gè)統(tǒng)計(jì)的周期或者嚴(yán)懲周期。如為了測(cè)試的需要要把這個(gè)周期縮短為10分鐘以判斷是否正常啟用了自動(dòng)工作負(fù)荷存儲(chǔ)庫(kù)時(shí),就需要把這個(gè)周期縮短。此時(shí)也是采用如上那個(gè)程序,不過(guò)參數(shù)是interval了。如果要把這個(gè)時(shí)間調(diào)整為30分鐘,則只需要把這個(gè)參數(shù)設(shè)置為30即可。注意此時(shí)這里是以分鐘為單位。如果此時(shí)數(shù)據(jù)庫(kù)管理員要讓這個(gè)工作負(fù)荷存儲(chǔ)庫(kù)表保留10天的紀(jì)錄,同時(shí)每隔30分鐘統(tǒng)計(jì)數(shù)據(jù)庫(kù)運(yùn)行的信息,就可以執(zhí)行以下的命令來(lái)完成:Execute Dbms_Workload_Reposttory.modify_snapshot_settings(interval=30,retention=14400)。即可以完成如上的需求。筆者再次強(qiáng)調(diào)一下,這個(gè)命令中都是以分鐘為單位的。另外,如果同時(shí)縮短統(tǒng)計(jì)周期并延長(zhǎng)工作負(fù)荷存儲(chǔ)庫(kù)表的存儲(chǔ)周期,那么在這兩個(gè)因素的共同作用下,這個(gè)表的容量會(huì)很快的膨脹起來(lái)。數(shù)據(jù)庫(kù)管理員需要注意這個(gè)問(wèn)題。通常情況下,筆者建議可以縮短這個(gè)統(tǒng)計(jì)周期,但是不建議延長(zhǎng)表的存儲(chǔ)周期。如果數(shù)據(jù)庫(kù)管理員確實(shí)需要一段時(shí)期內(nèi)的性能數(shù)據(jù)的話,則可以先把這個(gè)表導(dǎo)出來(lái)進(jìn)行備份。這可以避免工作負(fù)荷存儲(chǔ)表對(duì)數(shù)據(jù)庫(kù)表空間的侵蝕。再者,縮短內(nèi)存監(jiān)視器收集系統(tǒng)統(tǒng)計(jì)數(shù)據(jù)周期會(huì)增加數(shù)據(jù)庫(kù)的額外開銷,這也是數(shù)據(jù)庫(kù)管理員在調(diào)整這兩個(gè)參數(shù)時(shí)需要注意到的內(nèi)容。

關(guān)鍵詞標(biāo)簽:Oracle,數(shù)據(jù)庫(kù)

相關(guān)閱讀

文章評(píng)論
發(fā)表評(píng)論

熱門文章 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 誤刪Oracle數(shù)據(jù)庫(kù)實(shí)例的控制文件 為UNIX服務(wù)器設(shè)置Oracle全文檢索 為UNIX服務(wù)器設(shè)置Oracle全文檢索

相關(guān)下載

    人氣排行 oracle中使用SQL語(yǔ)句修改字段類型-oracle修改SQL語(yǔ)句案例 Oracle中使用alter table來(lái)增加,刪除,修改列的語(yǔ)法 ORACLE SQL 判斷字符串是否為數(shù)字的語(yǔ)句 ORACLE和SQL語(yǔ)法區(qū)別歸納(1) oracle grant 授權(quán)語(yǔ)句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法