袁 勇,袁光靈,孫小林
(1.遵義師范學(xué)院 信息工程學(xué)院,貴州 遵義 563000;2.遵義市易才完全中學(xué),貴州 遵義 563000)
Oracle RAC集群性能優(yōu)化策略分析
袁 勇1,袁光靈2,孫小林1
(1.遵義師范學(xué)院 信息工程學(xué)院,貴州 遵義 563000;2.遵義市易才完全中學(xué),貴州 遵義 563000)
文章從Oracle RAC集群的性能優(yōu)化策略出發(fā),先后從集群操作系統(tǒng)優(yōu)化、網(wǎng)絡(luò)優(yōu)化、集群數(shù)據(jù)庫優(yōu)化等方面對集群優(yōu)化提出相應(yīng)的優(yōu)化解決思路,并對Oracle RAC優(yōu)化方面需要考慮的相應(yīng)問題作出說明,以供數(shù)據(jù)中心集群系統(tǒng)管理人員參考.
Oracle RAC;性能優(yōu)化;策略
隨著云計(jì)算、大數(shù)據(jù)、物聯(lián)網(wǎng)等信息技術(shù)的飛速發(fā)展,越來越多的數(shù)據(jù)量相應(yīng)地產(chǎn)生,對應(yīng)用系統(tǒng)存儲的依賴程度越來越高.同時(shí),對應(yīng)用系統(tǒng)的穩(wěn)定性、高可用性的要求也日趨增加,使得信息系統(tǒng)的集成度更高.而高集成度的應(yīng)用系統(tǒng)對數(shù)據(jù)庫系統(tǒng)性能的要求也相應(yīng)增加.高可用的集群系統(tǒng),通常都將以犧牲集群系統(tǒng)的性能為代價(jià).但是作適當(dāng)?shù)男阅軆?yōu)化,一般可以使集群系統(tǒng)的性能相對更優(yōu).對于Oracle RAC集群系統(tǒng)來說,Oracle官方網(wǎng)站宣稱,調(diào)優(yōu)以后的RAC系統(tǒng)的性能會比單實(shí)例數(shù)據(jù)庫提升大約78.3%.因此,Oracle RAC集群系統(tǒng)性能優(yōu)化工作也是必不可少的,具有一定的意義.本文從操作系統(tǒng)優(yōu)化、網(wǎng)絡(luò)優(yōu)化、緩存優(yōu)化等諸多方面給出集群優(yōu)化的一些建議,以供相關(guān)技術(shù)人員參考.
Oracle RAC(Oracle Real Application Clusters),即Oracle真正應(yīng)用集群,是Oracle數(shù)據(jù)庫實(shí)現(xiàn)高可用性的一種技術(shù).Oracle RAC起源于其早期版本的OPS(Oracle Parallel Server),到Oracle 9i時(shí)正式更名為RAC,是Oracle公司實(shí)現(xiàn)網(wǎng)格計(jì)算環(huán)境的核心技術(shù).RAC一般由兩臺或者兩臺以上具有同構(gòu)的計(jì)算機(jī)及共享存儲構(gòu)成,能提供強(qiáng)大的數(shù)據(jù)處理能力和高可用的訪問能力,是Oracle Grid應(yīng)用的重要組成部分.它可以支持7X24小時(shí)在線的應(yīng)用系統(tǒng),降低成本構(gòu)建具有高可用的應(yīng)用系統(tǒng).在Oracle RAC集群中,Oracle還內(nèi)置了存儲管理軟件ASM和集群軟件Clusterware,這樣就降低了成本.而且當(dāng)整個(gè)應(yīng)用系統(tǒng)的規(guī)模需要擴(kuò)充時(shí),用戶可以根據(jù)需求擴(kuò)展應(yīng)用系統(tǒng),從而擴(kuò)展系統(tǒng)的性能.到Oracle12C中引入了可插拔數(shù)據(jù)庫等新特性,更好地保障了集群的高可用性和服務(wù)性能擴(kuò)展.
通常在具體實(shí)施過程中,我們可以使用兩臺服務(wù)器或者多臺服務(wù)器,以及存儲陣列來構(gòu)建RAC集群平臺,從而保障應(yīng)用集群系統(tǒng)數(shù)據(jù)庫的高可用性,具體如圖1所示.
圖1 RAC集群構(gòu)建拓?fù)鋱D
針對RAC集群性能優(yōu)化,通??梢詮牟僮飨到y(tǒng)優(yōu)化、網(wǎng)絡(luò)環(huán)境優(yōu)化、集群數(shù)據(jù)庫優(yōu)化等方面來開展工作.從而構(gòu)建出高可用并且性能得到調(diào)優(yōu)的集群環(huán)境,進(jìn)而提高應(yīng)用系統(tǒng)的訪問速度,提升用戶體驗(yàn).
對于安裝Oracle RAC來說,操作系統(tǒng)環(huán)境是相對苛刻的,安裝RAC的操作系統(tǒng)必須要通過Oracle RAC的產(chǎn)品認(rèn)證.這樣才能保證集群穩(wěn)定運(yùn)行,并且在版本的選擇上應(yīng)該選擇相對穩(wěn)定版本,并打上補(bǔ)丁[1].對于操作系統(tǒng)層面的優(yōu)化,可以從內(nèi)存訪問效率、系統(tǒng)全局區(qū)等調(diào)整操作系統(tǒng)參數(shù)方面考慮.
2.1.1 內(nèi)存訪問效率的提高
Oracle中包括LOCK_SGA和PRE_PAGE_SGA這兩個(gè)參數(shù),將SGA使用的內(nèi)存鎖定到物理內(nèi)存中,合理避免使用交換分區(qū)和產(chǎn)生碎片,進(jìn)而提高內(nèi)存訪問效率.
2.1.2 系統(tǒng)全局區(qū)的合理分配
系統(tǒng)全局區(qū)設(shè)置越大,能緩存的數(shù)據(jù)越多,但是,設(shè)置過大會影響進(jìn)程的創(chuàng)建,導(dǎo)致服務(wù)器宕機(jī)等嚴(yán)重的后果.
總之,通過調(diào)整操作系統(tǒng)的參數(shù)設(shè)置.比如,運(yùn)行在Linux操作系統(tǒng)上的Oracle RAC集群數(shù)據(jù)庫,可以調(diào)整Linux交換空間的大小、每個(gè)進(jìn)程所能使用的內(nèi)存大小、Linux數(shù)據(jù)緩沖區(qū)的大小等參數(shù),可以改善集群服務(wù)器操作系統(tǒng)的運(yùn)行性能,進(jìn)而提高集群的響應(yīng)性能.
RAC集群系統(tǒng)對于網(wǎng)絡(luò)的依賴性很高,其運(yùn)行的根本就是網(wǎng)絡(luò)訪問的速度明顯優(yōu)于讀寫存儲設(shè)備的速度,網(wǎng)絡(luò)連接的穩(wěn)定對于集群整體來說也是至關(guān)重要的.因此應(yīng)當(dāng)考慮服務(wù)器網(wǎng)卡的冗余,比如使用雙網(wǎng)卡綁定技術(shù).
網(wǎng)絡(luò)是RAC集群架構(gòu)中的一個(gè)關(guān)鍵部分,理解網(wǎng)絡(luò)架構(gòu)、集群件的網(wǎng)絡(luò)實(shí)現(xiàn)對于其設(shè)計(jì)和診斷性能都是非常重要的.在RAC安裝時(shí),特別要注意網(wǎng)絡(luò)接口配置、子網(wǎng)、內(nèi)核參數(shù)等.在遇到網(wǎng)絡(luò)丟包或者網(wǎng)絡(luò)性能問題引起的數(shù)據(jù)庫錯(cuò)誤時(shí),要善于用操作系統(tǒng)所帶的如ping,traceroute,netstat等命令及工具來對網(wǎng)絡(luò)問題進(jìn)行分析處理[2].
Oracle數(shù)據(jù)庫默認(rèn)的安裝方式對于實(shí)際的應(yīng)用系統(tǒng)來說,是不能滿足系統(tǒng)需求的,需要進(jìn)行優(yōu)化調(diào)整[3].
2.3.1 表空間的調(diào)整優(yōu)化
表空間的調(diào)整包括數(shù)據(jù)表空間、臨時(shí)表空間、undo表空間的調(diào)整優(yōu)化.在RAC中,使用ASM作為數(shù)據(jù)庫存儲方式,這其中就涉及數(shù)據(jù)庫區(qū)間與ASM邏輯結(jié)構(gòu)區(qū)間的映射關(guān)系,為了得到更好的性能,就需要在創(chuàng)建表空間時(shí)將兩個(gè)區(qū)間設(shè)置為相同大小.而對于臨時(shí)表空間和undo表空間,在設(shè)置的時(shí)候應(yīng)保證其足夠大,避免其成為操作瓶頸.
2.3.2 Shared Pool性能優(yōu)化
可以通過提高庫高速緩存命中率和數(shù)據(jù)字典緩存命中率來提高共享池的性能.
2.3.3 Buffer Cache高速緩存性能優(yōu)化
Buffer Cache的作用主要是提供各種鎖、栓鎖機(jī)制,從而可以使得多個(gè)進(jìn)程并發(fā)訪問同一個(gè)數(shù)據(jù)塊;緩存數(shù)據(jù)文件中的數(shù)據(jù)塊,減少I/O爭用;構(gòu)造CR塊,提供讀一致性功能等.
2.3.4 Cache Fusion性能優(yōu)化
通過合理地使用索引避免對于大表的全表掃描這種方法來提高Oracle RAC中Cache Fusion的性能[4].
除上述Oracle相對早期版本就有的優(yōu)化技術(shù)外,結(jié)合新版本中RAC數(shù)據(jù)庫的3A(AWRADDMASH)工具,對RAC數(shù)據(jù)庫進(jìn)行有效的監(jiān)控和性能調(diào)優(yōu)是很有必要的.當(dāng)然,在RAC數(shù)據(jù)庫中,首先要查找到引起性能問題的原因,進(jìn)而調(diào)整相應(yīng)層面來解決性能問題是根本.在大多數(shù)情況下,RAC性能問題均是由于那些隱藏在RAC等待時(shí)間后的單實(shí)例數(shù)據(jù)庫問題所引起的.
本文首先介紹了Oracle RAC集群的產(chǎn)生的背景及基本原理,并給出了其常見的拓?fù)浣Y(jié)構(gòu).之后,對集群系統(tǒng)的性能優(yōu)化,從操作系統(tǒng)層面、網(wǎng)絡(luò)層面、集群數(shù)據(jù)庫優(yōu)化層面等分別給出相應(yīng)的優(yōu)化思路和解決方法,并針對各個(gè)層面優(yōu)化過程中需要注意的問題給出一定的建議,以供數(shù)據(jù)庫集群系統(tǒng)相關(guān)從業(yè)技術(shù)人員參考.
[1]賽義德.深入理解Oracle RAC 12C[M].趙燚,梁濤,譯.北京:電子工業(yè)出版社,2014.
[2]劉炳林.構(gòu)建最高可用Oracle數(shù)據(jù)庫系統(tǒng)Oracle 11gR2 RAC管理、維護(hù)與性能優(yōu)化[M].北京:機(jī)械工業(yè)出版社,2012.
[3]高斌.Oracle RAC核心技術(shù)詳解[M].北京:機(jī)械工業(yè)出版社,2015.
[4]陳志敏.基于Linux平臺的Oracle RAC集群系統(tǒng)的性能調(diào)整與優(yōu)化研究[D].合肥:安徽大學(xué),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
貴州省科技廳聯(lián)合基金項(xiàng)目;項(xiàng)目名稱:基于虛擬化的Oracle12C集群高可用架構(gòu)與性能優(yōu)化研究;項(xiàng)目編號:黔科合LH字〔2017〕7071號.
袁勇(1986- ),男,貴州遵義人,實(shí)驗(yàn)師,碩士;研究方向:數(shù)字優(yōu)化仿真技術(shù).