袁 勇,袁光靈,孫小林
(1.遵義師范學院 信息工程學院,貴州 遵義 563000;2.遵義市易才完全中學,貴州 遵義 563000)
Oracle RAC集群性能優化策略分析
袁 勇1,袁光靈2,孫小林1
(1.遵義師范學院 信息工程學院,貴州 遵義 563000;2.遵義市易才完全中學,貴州 遵義 563000)
文章從Oracle RAC集群的性能優化策略出發,先后從集群操作系統優化、網絡優化、集群數據庫優化等方面對集群優化提出相應的優化解決思路,并對Oracle RAC優化方面需要考慮的相應問題作出說明,以供數據中心集群系統管理人員參考.
Oracle RAC;性能優化;策略
隨著云計算、大數據、物聯網等信息技術的飛速發展,越來越多的數據量相應地產生,對應用系統存儲的依賴程度越來越高.同時,對應用系統的穩定性、高可用性的要求也日趨增加,使得信息系統的集成度更高.而高集成度的應用系統對數據庫系統性能的要求也相應增加.高可用的集群系統,通常都將以犧牲集群系統的性能為代價.但是作適當的性能優化,一般可以使集群系統的性能相對更優.對于Oracle RAC集群系統來說,Oracle官方網站宣稱,調優以后的RAC系統的性能會比單實例數據庫提升大約78.3%.因此,Oracle RAC集群系統性能優化工作也是必不可少的,具有一定的意義.本文從操作系統優化、網絡優化、緩存優化等諸多方面給出集群優化的一些建議,以供相關技術人員參考.
Oracle RAC(Oracle Real Application Clusters),即Oracle真正應用集群,是Oracle數據庫實現高可用性的一種技術.Oracle RAC起源于其早期版本的OPS(Oracle Parallel Server),到Oracle 9i時正式更名為RAC,是Oracle公司實現網格計算環境的核心技術.RAC一般由兩臺或者兩臺以上具有同構的計算機及共享存儲構成,能提供強大的數據處理能力和高可用的訪問能力,是Oracle Grid應用的重要組成部分.它可以支持7X24小時在線的應用系統,降低成本構建具有高可用的應用系統.在Oracle RAC集群中,Oracle還內置了存儲管理軟件ASM和集群軟件Clusterware,這樣就降低了成本.而且當整個應用系統的規模需要擴充時,用戶可以根據需求擴展應用系統,從而擴展系統的性能.到Oracle12C中引入了可插拔數據庫等新特性,更好地保障了集群的高可用性和服務性能擴展.
通常在具體實施過程中,我們可以使用兩臺服務器或者多臺服務器,以及存儲陣列來構建RAC集群平臺,從而保障應用集群系統數據庫的高可用性,具體如圖1所示.

圖1 RAC集群構建拓撲圖
針對RAC集群性能優化,通常可以從操作系統優化、網絡環境優化、集群數據庫優化等方面來開展工作.從而構建出高可用并且性能得到調優的集群環境,進而提高應用系統的訪問速度,提升用戶體驗.
對于安裝Oracle RAC來說,操作系統環境是相對苛刻的,安裝RAC的操作系統必須要通過Oracle RAC的產品認證.這樣才能保證集群穩定運行,并且在版本的選擇上應該選擇相對穩定版本,并打上補丁[1].對于操作系統層面的優化,可以從內存訪問效率、系統全局區等調整操作系統參數方面考慮.
2.1.1 內存訪問效率的提高
Oracle中包括LOCK_SGA和PRE_PAGE_SGA這兩個參數,將SGA使用的內存鎖定到物理內存中,合理避免使用交換分區和產生碎片,進而提高內存訪問效率.
2.1.2 系統全局區的合理分配
系統全局區設置越大,能緩存的數據越多,但是,設置過大會影響進程的創建,導致服務器宕機等嚴重的后果.
總之,通過調整操作系統的參數設置.比如,運行在Linux操作系統上的Oracle RAC集群數據庫,可以調整Linux交換空間的大小、每個進程所能使用的內存大小、Linux數據緩沖區的大小等參數,可以改善集群服務器操作系統的運行性能,進而提高集群的響應性能.
RAC集群系統對于網絡的依賴性很高,其運行的根本就是網絡訪問的速度明顯優于讀寫存儲設備的速度,網絡連接的穩定對于集群整體來說也是至關重要的.因此應當考慮服務器網卡的冗余,比如使用雙網卡綁定技術.
網絡是RAC集群架構中的一個關鍵部分,理解網絡架構、集群件的網絡實現對于其設計和診斷性能都是非常重要的.在RAC安裝時,特別要注意網絡接口配置、子網、內核參數等.在遇到網絡丟包或者網絡性能問題引起的數據庫錯誤時,要善于用操作系統所帶的如ping,traceroute,netstat等命令及工具來對網絡問題進行分析處理[2].
Oracle數據庫默認的安裝方式對于實際的應用系統來說,是不能滿足系統需求的,需要進行優化調整[3].
2.3.1 表空間的調整優化
表空間的調整包括數據表空間、臨時表空間、undo表空間的調整優化.在RAC中,使用ASM作為數據庫存儲方式,這其中就涉及數據庫區間與ASM邏輯結構區間的映射關系,為了得到更好的性能,就需要在創建表空間時將兩個區間設置為相同大小.而對于臨時表空間和undo表空間,在設置的時候應保證其足夠大,避免其成為操作瓶頸.
2.3.2 Shared Pool性能優化
可以通過提高庫高速緩存命中率和數據字典緩存命中率來提高共享池的性能.
2.3.3 Buffer Cache高速緩存性能優化
Buffer Cache的作用主要是提供各種鎖、栓鎖機制,從而可以使得多個進程并發訪問同一個數據塊;緩存數據文件中的數據塊,減少I/O爭用;構造CR塊,提供讀一致性功能等.
2.3.4 Cache Fusion性能優化
通過合理地使用索引避免對于大表的全表掃描這種方法來提高Oracle RAC中Cache Fusion的性能[4].
除上述Oracle相對早期版本就有的優化技術外,結合新版本中RAC數據庫的3A(AWRADDMASH)工具,對RAC數據庫進行有效的監控和性能調優是很有必要的.當然,在RAC數據庫中,首先要查找到引起性能問題的原因,進而調整相應層面來解決性能問題是根本.在大多數情況下,RAC性能問題均是由于那些隱藏在RAC等待時間后的單實例數據庫問題所引起的.
本文首先介紹了Oracle RAC集群的產生的背景及基本原理,并給出了其常見的拓撲結構.之后,對集群系統的性能優化,從操作系統層面、網絡層面、集群數據庫優化層面等分別給出相應的優化思路和解決方法,并針對各個層面優化過程中需要注意的問題給出一定的建議,以供數據庫集群系統相關從業技術人員參考.
[1]賽義德.深入理解Oracle RAC 12C[M].趙燚,梁濤,譯.北京:電子工業出版社,2014.
[2]劉炳林.構建最高可用Oracle數據庫系統Oracle 11gR2 RAC管理、維護與性能優化[M].北京:機械工業出版社,2012.
[3]高斌.Oracle RAC核心技術詳解[M].北京:機械工業出版社,2015.
[4]陳志敏.基于Linux平臺的Oracle RAC集群系統的性能調整與優化研究[D].合肥:安徽大學,2011.
Analysis on performance optimization strategy of Oracle RAC cluster
Yuan Yong1, Yuan Guangling2, Sun Xiaolin1
(1.Information Engineering College of Zunyi Normal College, Zunyi 563000, China;2.Zunyi Yi Cai Complete Middle School, Zunyi 563000, China)
Based on the performance optimization strategy of Oracle RAC cluster, this paper puts forward the corresponding optimization solution ideas for cluster optimization from the aspects of cluster operating system optimization, network optimization and cluster database optimization. And taking out some questions that we should considerate when do the job of Oracle RAC optimization, which can take some references for the data center cluster system management administrator.
Oracle RAC; performance optimization; strategy
貴州省科技廳聯合基金項目;項目名稱:基于虛擬化的Oracle12C集群高可用架構與性能優化研究;項目編號:黔科合LH字〔2017〕7071號.
袁勇(1986- ),男,貴州遵義人,實驗師,碩士;研究方向:數字優化仿真技術.