DBA 淺談Oracle E-Business Suite系統優化

 DBA 淺談Oracle E-Business Suite系統優化

 

隨着企業應用管理領域的不斷擴展,企業應用系統涉及的業務範圍也越來越廣泛,已經由原來的單純生產製造、財務以及人力資源管理,逐步延伸到客戶關係管理、供應鏈管理、電子商務等等領域。在這種情況下,系統之間數據的一致性和數據交換,就變得非常重要。

Oracle 11i整個系統基於一個統一的數據庫,並且共享統一的數據模型。在這種情況下,Oracle EBS 11i系統具有的——SAP在這方面所不太明顯——優勢逐漸發揮出來。同時,近年來,Oracle 在中國市場的大量投入,也使得不僅是Oracle 數據庫在中國佔去了近48%的市場份額,而Oracle 電子商務套件也在中國的市場範圍也越來越大,從而在中國Oracle ERP 用戶也急速的增長。在像中國移動、中國電信、伊利集團等這些大的公司中,一般有專門公司提供專業的的Oracle ERP 服務,所以,即使出現性能問題,也有專業人員進行調整。但對於好多中小企業,本身上ERP 系統已經花費了大量的資金,出現了性能問題也無力聘請費用極高的高級顧問進行系統的調優,並且有些企業領導本身也不太重視後臺系統維護和優化的重要性。所以,好多中小企業中並沒有配備專門的ERP系統後臺管理人員。雖然他們的ERP系統已經在正常運轉,但在使用Oracle ERP 過程中,出現很多性能低下的情況,並且頻頻出現。而系統的使用人員或前端維護人員,一般對後臺並不瞭解,所以對於系統的性能問題只能是束手無策。

爲了解決這些朋友的困惑,並且讓非專職的後臺管理人員也能根據本文提出的性能信息收集以及調優的原則,也能做一些必要的優化,從而使系統更好、更快的運行。

筆者憑藉在Oracle ERP 領域幾年的管理和項目經驗,將站在DBA 的角度,從後臺管理角度出發,簡單談一下Oracle EBS ERP系統優化的目標和要使用的基本方法。

當然,對龐大的ERP系統進行優化,並不是很簡單的事,這牽扯到很多方面,也牽扯到各個功能方面的顧問。 優化一直是一個說起來簡單而做起來相當的難的事情,每個系統可能出現的性能問題都不近相同,並且存在平臺、版本以及應用的複雜程度的不同。所以,每個系統的優化也不近相同,有時候只能根據現場環境具體問題具體分析。

一. Oracle 數據庫性能優化內容、原則和建議
1. Oracle EBS 整個系統基本系統信息收集工具
RDA(Remote Diagnostic Agent)工具是Oracle 公司提供的一個收集系統基本信息的工具,在RDA的report檔中包含了OS、RDBMS、Instance等比較全面的信息。Oracle Support會根據這些信息來做出分析,並可以對這些系統給出建議。這個工具可以到Oracle 公司的metalink上下載,根據軟件包的readme 文件在系統中進行安裝即可。如果數據庫是RAC 的方式,需要單獨針對RAC 的包安裝。

當然,還有很多的可以提供系統收集的工具,但筆者感覺Oracle 提供的這個工具是最簡單,也是最好用的工具之一。

2. Oracle 數據庫運行情況信息收集
收集Oracle 數據庫運行情況的工具很多,但大部分是由第三方軟件方提供的,並且是收費的。雖然那些工具在使用中可能更簡單或者更好一些,但對於中小企業Oracle ERP 用戶,購買這樣的工具也將是不小的費用。

Oracle Statspack :Oracle Statspack 從Oracle 8.1.6開始被引入Oracle,並立刻成爲DBA以及Oracle專家用來診斷數據庫性能的最重要的工具之一。通過Statspack我們可以很容易地確定Oracle數據庫的瓶頸所在,記錄數據庫性能狀態,也可以使遠程技術支持人員迅速瞭解你的數據庫運行狀況。此工具在Oracle 9i中的使用更是廣泛,雖然到Oracle 10g有了新的、更強大的工具,但一些熟悉Statspack 的DBA還是很熱忠於使用此工具。

TKPROF:TKPROF工具是一個用於分析Oracle 跟蹤文件並且產生一個更加清晰合理的輸出結果的可執行工具。如果一個系統的執行效率比較抵,一個比較好的方法是跟蹤用戶的會話並且使用TKPROF工具的排序功能格式化輸出。從而找出有問題的SQL 語句。

另外,可以使用SQL_TRACE /10046事件進行數據庫診斷,運用logmnr /Stored Outline/ dbms_profiler 進行調優。

3.針對Statspack Report 的幾點建議
(1)根據實際情況,採集數據的間隔不能太長,也不能太短,專家建議一般在每15至30分鐘1次。

(2)不要以命中率爲主,來衡量性能問題。

(3)不要以偏概全,最好要產生多次報告,這樣纔能有助於Oracle專家迅速解決問題。

(4)關於TIMED_STATISTICS 的參數設定,建議在實例級別設置。

 

二. Oracle 數據庫優化的內容

Oracle 數據庫優化的內容,主要包括如下幾點:

•利用Oracle 的等待事件檢測性能瓶頸並進行相應的優化。
•表空間的存儲管理與優化。
•Oracle 數據庫中行遷移/行聯接問題。
•HVM 與數據庫性能調整。
•調整I/O 相關的等待。
•利用Freelists/Freelist Groups 進行性能調整。
•SGA/PGA 的優化。
•利用KEEP 池和RECYCLE 池進行優化。
•分析和解決數據庫的熱點塊問題。
•分析和監控INDEX 進行性能調優。
•表結構的優化。
•合理運用分區表,提高系統的性能。
•二次開發SQL 語句的優化,假如開發很多的話,這將是優化的重點和難點。

三. Application性能調優內容和方法
1.Oracle E-Business Suite 系統架構

2.Oracle EBS Application性能信息收集
HTTP/Jserv :可以從Server 運行狀態、錯誤日誌、Access 日誌、Dynamic Service (DMS) 狀態、JServ 運行狀態這個幾個方面收集需要的信息,然後把這些作爲以後調優的根據。

Mod_plsql :可以從Apache Access 日誌、database connectios 數量以及這些連接消耗多少資源等方面收集信息,然後把這些作爲以後調優的根據。

Forms Server:可以從操作系統日誌、Enable Forms Listener Logging、Enable Sign-On Auditing、Forms Performance Collector、Forms Network Statistics、Forms Listener Logging、Forms Latency Meter 等幾個方面收集信息,並把這些信息做爲以後Application 調優的依據。

3. Oracle EBS Application性能優化

雖然Oracle EBS 系統已經在設計產品的時候進行了優化,但這些優化並不一定適合每個公司的實際情況。同時,由於Oracle EBS 系統是基於Web方式訪問的ERP 系統,因此應用程序的優劣將對客戶訪問ERP 系統影響是極大的。根據實際情況,也可以用如下的方面進行應用程序的優化:

(1)優化http Listerner: 可以考慮從Server processes、Avaliable MemoryCookie DomainHostname Lookups 等方面進行參數的優化和重新設置。

(2)優化Jserver: 可以考慮從Class Load Times、zone.properties等方面進行參數優化和重新設置。

(3)優化mod_plsql: 可以考慮從database connecting pooling、set response ayyay size 等方面進行參數優化和重新設置。

(4)優化forms server: 可以考慮從set up forms runtime process pool、load balanceing forms servers等方面進行參數優化和重新設置。

(5)優化TCP/IP:可以考慮從tcp_conn_hash_size、tcp_close_wait_interval、tcp_slow_start_initial、 tcp_conn_req_max_q0等方面進行參數優化和重新設置。

 

四. Storage Disk I/0性能調優內容和方法
1.原則上DISK 的調優由各Storage 廠家工程師來完成,DBA只是輔助做這方面的優化。

一般的性能數據收集每個廠商都有自己的工具和方法,如IBM 的nmon ,網上也有一些免費的測試I/O的小軟件,如:bonnie。(免費下載地址:http://www.textuality.com/bonnie/)

2. 調優的原則

•必須確定Disk Storage所用的HBA DRIVER 是和OS 配合最好的版本。

•因爲數據庫表現出I/O 性能問題時,確認對應控制器以及DISK 是否有故障。

•通過測試DISK 的I/O ,判斷是不是由於DISK Storage 老化或者業務增長太迅速,現有的DISK Storage 已經不能滿足業務需要了。這種情況下,就應該考慮投資高端的設備了。

五. Server HW 性能調優內容和簡單方法
1. 原則上HW OS 的調優有各廠家工程師來完成,DBA 只是輔助做這方面的優化。一般的性能數據收集每個廠商都有自己的工具和方法 數據收集的方法和工具。

2. 一般的調優原則,如下:

•關閉 後臺進程
•關閉GUI
•修改內核參數,達到最優
•優化處理器子系統
•優化內存子系統
•優化文件系統
•優化網絡子系統
每個操作系統的不同,調優的方向和方法也不盡相同,因此要根據實際情況,分類提出相應的方案。

 

六. HW Capacity 性能重新評估(tpmC值)
1. 原則上,硬件的性能評估由各服務器廠家工程師來完成,DBA只是輔助做這方面的優化。

2. 一般的評測方法

一般的評測方法是根據TPC-C的標準,而TPC-C 標準中tpmC值是根據標準模型中New-Order事務的處理數目來計算的。一個New-Order事務由平均4-5個SQL語句處理完成,整個測試的執行過程中,New-Order處理佔45%。

3. 估算方法舉例

估算條件:某集團公司2007年將達到250萬用戶數,每天每用戶產生5張定單。

分析過程如下。

每分鐘處理: (用戶數)250萬*5/24/60 =9250

峯值處理: 9250*1.5 =11350

需執行約6個SQL語句,則估算一個定單彙總處理業務相當的TPC-C值爲:
6*0.45/4 = 0.67Tpmc

定單彙總和分析的TPC-C 值要求滿足:
11350* 0.67Tpmc =9300Tpmc

考慮25%的冗餘(操作系統以及其它開銷):
服務器性能 =9300Tpmc *1.25 =11000Tpmc

七. 簡單總結
本文檔在如下方面進行簡單的分析以及基本的調優:

1. Oracle Database
2. Oracle EBS Application
3. Storage Disk I/O
4. 服務器 HardWare
5. 服務器Capacity 性能評估(tpmC值)

希望本文能起到“拋磚引玉”的作用,和大家一起探討Oracle ERP 系統的優化。另外,本文只是從DBA 的角度去分析和優化Oracle EBS系統,而從規劃和開發的角度去分析和優化系統,將有別的其他調優內容和方法。

發佈了6 篇原創文章 · 獲贊 1 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章