最佳化調整Oracle 8i資料庫(轉)
最佳化調整Oracle 8i資料庫(轉)[@more@]Oracle 8i資料庫伺服器是高度可最佳化的軟體產品,經常性的調整可以最佳化系統的效能,防止出現資料瓶頸。我們透過調整資料庫系統,可以使它達到最佳效能以滿足使用者的需要。下面,筆者將介紹最佳化和調整Sun SPARC Solaris系統平臺上的Oracle 8i資料庫伺服器的一些相關命令和方法。Solaris效能監控命令Solaris提供了效能監控命令,用於監控資料庫效能和決定資料庫的需求。除了為Oracle程式提供統計外,它們還為CPU提供使用統計,為整個系統提供中斷、交換、分頁和上下文轉換功能。監控命令包括:1.vmstatvmstat命令報告Solaris上的程式、虛擬記憶體、磁碟、分頁和CPU的活動情況。下面命令將顯示系統每5秒鐘做的事的概要:% vmstat 52.sarsar命令用於監控交換、分頁、磁碟和CPU活動。下面命令用於每10秒顯示10次分頁活動的概要:$ sar -p 10 103.iostatiostat命令報告終端和磁碟的活動。該報告顯示哪些磁碟是忙的(該資訊在平衡I/O負載時有用)。下面命令用於每5秒顯示5次終端和磁碟活動:$ iostat 5 54.swapswap命令報告關於交換空間使用的資訊。交換空間的不足可以導致系統懸掛,減慢響應時間。5.mpstatmpstat命令報告每個處理器的統計。調整記憶體管理1.分配足夠的交換空間記憶體交換(swapping)可以造成很大的記憶體開銷,應該將它最小化。在Solaris上使用sar -w或vmstat -S命令來檢查交換。若系統在交換,且需要節省記憶體,則應採用以下措施:避免執行不必要的系統daemon程式或應用程式程式;減少資料庫緩衝區的數量,以釋放一些記憶體;減少UNIX檔案緩衝區的數量(特別是在使用原始裝置時)。在Solaris上用swap -l命令決定當前正在使用多少交換空間。使用swap -a命令向系統中增加交換區。用系統RAM兩到四倍的交換空間啟動資料庫。若準備使用Oracle Developer、Oracle Applications或Oracle InterOffice,則使用更高的值。監控交換空間的使用,在必要時增加它。2.控制分頁記憶體分頁(paging)可能沒有交換那樣問題嚴重,因為為了執行,整個應用程式不必全部放在記憶體中。少量的分頁不可能顯著地影響系統的效能。為了檢測過多的分頁,在快速響應或空閒期間執行測量,並與響應遲緩時的測量進行比較。使用vmstat或sar -p監控分頁。若系統有過多的頁面活動,則需考慮以下解決辦法:安裝更多的記憶體;將一些工作移到另一系統中;配置系統核心使用更少的記憶體;保持SGA在單個共享記憶體段中。沒有足夠的共享記憶體,將不能夠啟動資料庫。這時,我們可以重新配置UNIX核心,以增加共享記憶體。調整磁碟I/OI/O瓶頸是最容易識別的效能問題。跨所有可用的磁碟均勻地平衡I/O,可以減少磁碟存取的時間。對於較小的資料庫和不使用並行查詢選項的那些資料庫,要確保不同的資料檔案和表空間跨可用的磁碟分佈。1.調整DBWR,增加寫頻寬Oracle提供以下方法以防止DBWR(資料庫寫程式)活動成為瓶頸:使用非同步I/O 非同步I/O允許程式繼續處理下一個操作,而不必等待在發出寫後,最小化了空閒時間,因而改善了系統效能。Solaris支援原始裝置和檔案系統資料檔案的非同步I/O。使用I/O從屬 I/O從屬(slave)是專用的程式,其惟一功能是執行I/O。它們代替Oracle 7的多個DBWR特性(實際上它們是多個DRWR的概括,可以由其它程式分佈)。不管非同步I/O是否可用,它們都可以操作。若設定的話,它們被從 LARGE_POOL_SIZE分配,否則從共享記憶體緩衝區分配。初始化引數控制了I/O從屬的行為,其中DISK_ASYNCH_IO和TAPE_ASYNCH_IO允許分別為磁碟和磁帶裝置關閉非同步I/O(因為每個程式型別的I/O從屬預設為0,除非明確設定,否則沒有I/O從屬被髮布)。若DISK_ASYNCH_IO或TAPE_ASYNCH_IO無效,則DBWR_IO_SLAVES應該設定大於0,否則DBWR將成為一個瓶頸。在這種情況下,Solaris上DBWR_IO_SLAVES的最佳值為4,而在LGWR_IO_SLAVES的情況下,釋出的從屬不應該超過9個。DB_WRITER_PROCESSES代替Oracle 7的引數DB_WRITERS,指定某例項的資料庫寫程式的初始數量。若使用DBWR_IO_SLAVES,則只有一個資料庫寫程式被使用,而不管DB_WRITER_PROCESSES的設定。2.使用IOSTAT查詢大磁碟請求佇列請求佇列顯示特定磁碟裝置上等待服務的I/O請求有多長。由大量的磁碟I/O或由平均查詢時間I/O引起請求佇列。磁碟請求佇列應該為0或接近於0。3.選擇合適的檔案系統型別Sun SPARC Solaris允許選擇檔案系統。檔案系統有不同特性,它們用於存取資料的技術對資料庫效能有實質性的影響。檔案系統通常包括:.s5:UNIX系統V檔案系統;.ufs:UNIX檔案系統(由BSD UNIX派生);.vxfs:Veritas檔案系統;.原始裝置:沒有檔案系統。通常沒有事實證明檔案系統與檔案系統是相配的,甚至不同的ufs檔案系統也難以比較(因為執行不同),儘管ufs通常是高效能的選擇,但根據選擇檔案系統的不同,效能差別變化也很大。監控磁碟效能使用sar -b和sar -u可以監控磁碟效能。sar -b對磁碟效能的重要性如下:(1)bread/s、bwrit/s:塊讀和塊寫,它們對檔案系統而言是非常重要的。(2)pread/s、pwrit/s:分割槽讀和分割槽寫,它們對原始分割槽資料庫系統是非常重要的。Oracle塊大小應該匹配磁碟塊大小或是磁碟塊大小的倍數。若可能的話,在資料庫檔案使用檔案系統前在分割槽上做檔案系統檢查;然後製作一個新的檔案系統,確保它是清潔的和不破碎的。儘可能地均勻分佈磁碟I/O,將資料庫檔案與日誌檔案分開。調整CPU的使用1.在同一優先權上保持所有Oracle使用者和程式在Oracle中,所有使用者和後臺程式操作在同一優先順序上,修改優先權對競爭和響應時間有意想不到的影響。例如,若LGWR(日誌寫程式)獲得低優先權,則它不能充分地執行,LGWR將成為一個瓶頸;另一方面,若LGWR有高的優先權,使用者程式可能要忍受較壞的響應時間。2.在多處理器系統上使用處理器親和力/捆綁在多處理器環境中,使用處理器親和力/捆綁(affinity/binding,若它在系統中可用)。處理器捆綁禁止某程式從一個CPU移動到另一個,允許CPU快取記憶體中的資訊被更好地利用,而且可以捆綁伺服器程式,從而充分利用快取記憶體(因為它總是活動的,允許後臺程式在CPU間流動)。3.為Export(匯出)/Import(匯入)和SQL?Loader使用單任務連結若要在使用者和Oracle 8i之間傳輸大量的資料(如使用Export/Import),使用單任務結構是非常高效的,因為作為單任務連結Oracle可執行程式,允許某使用者程式直接存取整個SGA。但執行單任務需要更多的記憶體。為了使用單任務匯入、匯出和SQL?Loader(sqlldrst)可執行程式,我們可以呼叫 make檔案的ins_rdbms.mk(在$ORACLE_HOME/rdbms/lib目錄中)。下面是用於實現單任務匯入、匯出和SQL?Loader(sqlldrst)的可執行程式:% cd $ORACLE_HOME/rdbms/lib% make -f ins_utilities.mk singletask調整塊大小和檔案大小在Solaris上,Oracle塊預設值為2KB,可以設定的實際大小為2KB的倍數,最大設定值為16KB。最優的塊大小通常是預設值,但隨著應用程式而變化。為了用不同的Oracle塊大小建立資料庫,在建立資料庫前在initsid.ora檔案中增加下面行:db_block_size=new_block_size調整Solaris緩衝區快取記憶體大小為了充分利用原始裝置的優點,我們需要調整Oracle 8i緩衝區快取記憶體的大小和Solaris緩衝區快取記憶體。Solaris緩衝區快取記憶體由作業系統提供。它在記憶體中儲存資料的塊(在它們被從記憶體傳送到磁碟前,反之亦然)。Oracle 8i緩衝區快取記憶體是在記憶體中儲存Oracle資料庫緩衝區的區域。因為Oracle 8i可以使用原始裝置,它不需要使用Solaris緩衝區快取記憶體。在移動原始裝置時,增加Oracle 8i緩衝區快取記憶體的大小。若系統中記憶體的數量是有限的,則相應地減少Solaris緩衝區快取記憶體的大小。Solaris命令sar可以幫助決定哪些緩衝區快取記憶體應該增加或減少:sar -b:報告Solaris緩衝區快取記憶體的活動;sar -w:報告Solaris記憶體交換活動;sar -u:報告CPU利用情況;sar -r:報告記憶體利用情況;sar -p:報告Solaris記憶體分頁活動。通常在快取命中率上升時,我們需要增加Oracle 8i緩衝區快取記憶體的大小,而在交換/分頁活動變高時,我們需要減少快取記憶體的大小。我們還可以使用Oracle 8i建立的跟蹤(Trace)和警報(Alter)檔案來診斷和解決執行中存在的問題。只要我們充分利用以上命令和方法,就可以很好地最佳化與調整Oracle 8i資料庫了
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8225414/viewspace-942470/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- oracle資料庫的效能調整(轉)Oracle資料庫
- Sun SPARC Solaris系統平臺上的Oracle 8i最佳化調整(轉)Oracle
- Oracle 資料庫引數調整Oracle資料庫
- oracle資料庫的效能調整Oracle資料庫
- Oracle 8i資料庫體系結構(轉)Oracle資料庫
- Oracle - 資料庫的記憶體調整Oracle資料庫記憶體
- Oracle效能最佳化調整--調整重做機制Oracle
- 調節Oracle資料緩衝區引數,緩衝整個資料庫(轉)Oracle資料庫
- 調整資料庫引數資料庫
- Oracle資料庫效能調整 - 建議器 ADVICEOracle資料庫
- 資料庫引擎調整顧問資料庫
- Oracle資料庫效能最佳化技術(轉)Oracle資料庫
- Oracle效能調整-1(轉)Oracle
- Oracle效能調整-2(轉)Oracle
- Oracle效能調整-3(轉)Oracle
- 調整CALLCENTER系統的資料庫資料庫
- [最佳化]Oracle 內在索引和引數數的調整(轉)Oracle索引
- 調整資料庫的資料檔案記錄資料庫
- Oracle效能最佳化調整--調整緩衝區快取記憶體Oracle快取記憶體
- Oracle資料庫效能最佳化技術(轉載)Oracle資料庫
- Oracle資料庫及應用程式最佳化(轉)Oracle資料庫
- Oracle整體資料庫複製解決方案調查報告Oracle資料庫
- Oracle資料庫SQL語句效能調整的基本原則 (3)Oracle資料庫SQL
- Oracle資料庫SQL語句效能調整的基本原則 (2)Oracle資料庫SQL
- Oracle資料庫SQL語句效能調整的基本原則 (1)Oracle資料庫SQL
- 達夢資料庫引數調整方法資料庫
- 資料塊調整
- oracle資料庫調優描述Oracle資料庫
- Oracle資料庫9i在AIX環境下的效能調整Oracle資料庫AI
- oracle資料庫最佳化基礎Oracle資料庫
- [轉載]Oracle資料庫應用系統調優方法Oracle資料庫
- oracle 8i資料庫ORA-01092的診斷Oracle資料庫
- 為什麼資料庫調整大小如此困難?資料庫
- 資料庫安裝初始化引數調整資料庫
- 【效能最佳化】ORACLE資料庫效能最佳化概述Oracle資料庫
- 最佳化Oracle停機時間及資料庫恢復(轉)Oracle資料庫
- 收集資料庫統計資訊的Oracle工具——效能調整手冊和參考資料庫Oracle
- oracle 效能調整Oracle