文章詳情頁
Oracle9i數(shù)據(jù)庫如何支持動態(tài)重配置
瀏覽:2日期:2023-11-16 17:52:15
Oracle9i最重要的新特性就能動態(tài)修改幾乎所有Oracle性能參數(shù)。這使Oracle專家能在Oracle實例運(yùn)行期間動態(tài)地重新配置它——不管是因為要解決當(dāng)前的一個性能問題,還是因為猜測到一個緊迫的性能需求。由于能動態(tài)修改系統(tǒng)全局區(qū)域(System Global Area,SGA)中的所有東西(SGA是Oracle的一個實例使用的RAM),所以至關(guān)重要的一點就是知道如何監(jiān)視Oracle數(shù)據(jù)庫。歸納出系統(tǒng)訪問趨勢及訪問模式后,可因為猜測到常規(guī)的資源需求而提前重新配置好數(shù)據(jù)庫。 牽涉到動態(tài)數(shù)據(jù)庫調(diào)節(jié)操作時,Oracle專家通常關(guān)心的是兩方面的問題:事先安排好的重配置,以支持常規(guī)處理需求的變化;以及基于趨勢的動態(tài)重配置,以響應(yīng)從STATSPACK中獲取的信息。下面來看看Oracle如何對這兩種活動提供支持。 安排好的重配置 假定一個Oracle數(shù)據(jù)庫在白天以“聯(lián)機(jī)事務(wù)處理”(OLTP)模式運(yùn)行,夜間以“決策支持”模式運(yùn)行。這兩種服務(wù)為了獲得最佳的性能,分別提出了完全不同的要求。針對這種類型的數(shù)據(jù)庫,Oracle DBA可事先安排好一個任務(wù),針對當(dāng)前的處理類型,將Oracle實例重配置為最恰當(dāng)?shù)呐渲谩?通常可選擇兩種工具之一來安排動態(tài)重配置。最常見的方式是使用一個UNIX cron作業(yè),它啟動一個shell腳本來安排定期重配置。還可使用Oracle dbms_job實用程序。這兩種工具都答應(yīng)你安排一次配置更改。 清單A如下: Listing A: Script to change to DSS-mode #!/bin/ksh # First, we must set the environment . . . . ORACLE_SID=$1 eXPort ORACLE_SID ORACLE_HOME=`cat /etc/oratabgrep ^$ORACLE_SID:cut -f2 -d':'#ORACLE_HOME=`cat /var/opt/oracle/oratabgrep ^$ORACLE_SID:cut -f2 -d':'` export ORACLE_HOME PATH=$ORACLE_HOME/bin:$PATH export PATH $ORACLE_HOME/bin/sqlplus –s /nologin<alter system set db_cache_size=1500m;alter system set shared_pool_size=500m;alter system set pga_aggregate_target=4000m;exit !清單A提供了一個UNIX腳本,可用它針對決策支持處理而重配置Oracle。注重該腳本修改了shared_pool、db_cache_size以及pga_aggregate_target等參數(shù),以滿足數(shù)據(jù)倉庫活動的需要。第二天早上可運(yùn)行一個類似的腳本,將數(shù)據(jù)庫配置變回OLTP模式。基于趨勢的動態(tài)重配置 執(zhí)行基于趨勢的動態(tài)重配置時,要收集有關(guān)Oracle數(shù)據(jù)庫的歷史數(shù)據(jù),并用這種信息來提前重配置數(shù)據(jù)庫,具體做法可能是使用dbms_job包進(jìn)行臨時性更改,或使用前面討論的某種方法安排定期重配置。這類似于“準(zhǔn)實時”生產(chǎn)——裝配線上需要某些零件時,那些零件就剛好出現(xiàn)在生產(chǎn)車間。同樣地,Oracle DBA可猜測處理需求,并確保及時提供SGA資源,以滿足處理任務(wù)之需要。 可用STATSPACK來跟蹤重要度量指標(biāo),并揭示出訪問模式,以猜測Oracle服務(wù)器即將需要的資源。度量指標(biāo)通常根據(jù)一天中的不同小時以及一周中的不同天來收集,以便發(fā)現(xiàn)其中的訪問模式。以圖A天天各個小時的數(shù)據(jù)緩沖命中率(BHR)為例。
圖A這幅BHR圖表明緩沖區(qū)塊反復(fù)出現(xiàn)短缺現(xiàn)象,注重重復(fù)出現(xiàn)的指標(biāo)表明,數(shù)據(jù)緩沖區(qū)塊在2:00到3:00 AM之間出現(xiàn)短缺,同樣的情況在8:00到9:00 PM之間再次出現(xiàn)。了解這一點后,就可安排任務(wù),在這些時段為數(shù)據(jù)緩沖重新分配RAM,以緩解問題。 還可以繪制一周中每一在的數(shù)據(jù)BHR圖,如圖B所示。從中可以看出,有問題的是周一和周五。所以,這兩天需要增大db_cache_size來糾正問題。
圖B日BHR圖揭示出較長周期內(nèi)產(chǎn)生的問題,基于趨勢的信息對于Oracle DBA來說是一個大有潛力可挖的金礦,因為可用它揭示出Oracle數(shù)據(jù)庫中以前看不見的性能趨勢。我的下一篇文章將更研究聰明的Oracle專家喜歡使用的一些重要指標(biāo),可根據(jù)它們確定如何動態(tài)調(diào)節(jié)Oracle9i數(shù)據(jù)庫。


標(biāo)簽:
Oracle
數(shù)據(jù)庫
排行榜
