(遵義師范學院網(wǎng)絡管理中心,貴州 遵義 563006)
隨著現(xiàn)代信息化技術的發(fā)展,信息化系統(tǒng)不斷催生,為保障各類應用的高可用需求,各大數(shù)據(jù)庫廠商也在不斷的推出高可用的數(shù)據(jù)庫集群解決方案,Oracle從9i正式提出RAC數(shù)據(jù)庫,它可以支持7×24h的應用系統(tǒng)在低成本的服務器上進行構建,并且可以進行應用的自由部署。當系統(tǒng)規(guī)模需要擴充時,用戶可以根據(jù)自身需求,對系統(tǒng)規(guī)模進行相應擴展,以此來保障系統(tǒng)的運行性能[1-2]。但是,只是簡單的增加節(jié)點,能給集群性能提升帶來多大的變化則需要通過實踐來檢驗。通過虛擬化平臺VirtalBox搭建兩個節(jié)點的RAC集群,然后利用Swingbench壓力測試工具分別對雙節(jié)點和單節(jié)點下的集群環(huán)境進行壓力測試,分析兩種環(huán)境下數(shù)據(jù)庫性能的變化情況,進而得出相應的結論。
Oracle RAC是基于并行性、高可用性等諸多概念產(chǎn)生的,從硬件層面來說,部署集群最少需要兩臺服務器(或者PC)、以及共享存儲設備。通過虛擬化技術,則是創(chuàng)建了兩臺虛擬主機以及虛擬共享存儲設備。同時實施過程中還要兩類軟件,Oracle集群件和數(shù)據(jù)庫軟件,并且安裝RAC集群的服務器操作系統(tǒng)要保證一致。根據(jù)負載均衡的相關策略,當一個應用客戶端發(fā)送請求并被集群中的某一臺服務器監(jiān)聽后,這臺服務器會根據(jù)相關的策略,把客戶端請求發(fā)送給本機的RAC組件進行處理,當然也可能發(fā)送給集群中另外的服務器RAC組件處理。通常雙節(jié)點的架構如圖1所示。
圖1 雙節(jié)點RAC架構圖
根據(jù)表1中的規(guī)劃信息,搭建雙節(jié)點RAC集群測試環(huán)境,以此為基礎,進行后續(xù)的壓力測試操作,關于RAC雙節(jié)點的搭建,參見文獻[3]。
文中采用虛擬化平臺環(huán)境:VirtualBox5.1.26;
操作系統(tǒng)版本:CentOS6.4;
數(shù)據(jù)庫軟件版本(Grid,Oracle):Oracle12CR1;
壓力測試軟件:Swingbench2.6。
虛擬化主機資源:單CPU,內(nèi)存5120M。
表1 RAC集群規(guī)劃表
(1)在將要運行Swingbench測試軟件的節(jié)點上安裝java運行環(huán)境支持:yum -y install java-1.8.0-openjdk*
(2)進入Swingbench軟件的bin目錄,利用./oewizard命令執(zhí)行導入數(shù)據(jù)向導。
(3)在數(shù)據(jù)庫設置界面中,輸入測試數(shù)據(jù)的相關信息。Connect String://rac1/tar;用戶:sys;密碼:yy123654。連接字符串、用戶名及密碼信息根據(jù)數(shù)據(jù)庫本身信息進行更改,并且在連接過程中保證Oracle數(shù)據(jù)庫是打開狀態(tài)。
(4)設置Schema用戶名和密碼,并指定用于存放測試數(shù)據(jù)的表空間,以及數(shù)據(jù)文件存放位置,之后執(zhí)行導入1G測試數(shù)據(jù)。
(5)數(shù)據(jù)導入成功后,出現(xiàn)如圖2所示界面。
圖2 成功導入數(shù)據(jù)界面圖
進入Swingbench的bin目錄,執(zhí)行./swingbench命令。在彈出的Swingbench運行主界面進行參數(shù)設置,具體如圖3所示。
Configuration界面:設置Username,Password,Connect String參數(shù)。//Username,Password是導入測試數(shù)據(jù)時設置的Schema用戶名和密碼,Connect String是測試數(shù)據(jù)庫的連接字符。
Load界面:設置導入用戶數(shù),此處導入4個用戶。
Transactions界面:設置各種類型操作所占比例。
圖3 Swingbench 參數(shù)設置圖
圖4 雙節(jié)點壓力測試結果圖
圖5 單節(jié)點壓力測試結果圖
設置好所有參數(shù)后,點擊工具欄Start Benchmark Run按鈕,則開始進行壓力測試。先進行雙節(jié)點壓力測試,其測試結果如圖4所示。
在完成玩節(jié)點壓力測試工作后,把集群中的節(jié)點2進行關閉,變成單節(jié)點的集群環(huán)境?;蛘?,在圖2的Configuration界面中,將參數(shù)Connect String設置為rac1∶1521∶tar1,便是通過單節(jié)點進行數(shù)據(jù)庫的壓力測試操作。單節(jié)點壓力測試結果如圖5所示。
根據(jù)之前的參數(shù)設置,通過壓力測試,得到測試結果圖,從圖上可以直觀的得出雙節(jié)點和單節(jié)點壓力測試的幾個重要數(shù)值,如表2所示。
表2 壓力測試情況對比表
雙節(jié)點集群比單節(jié)點集群從資源量上來說,增加了一倍,但是根據(jù)表2的幾個參數(shù)值來說,從壓力測試的結果層面來看,其性能雖然是有所增加,并沒有得到太大的改觀,從投入產(chǎn)出來說,投入的資源量并沒有達到預期的效果。因此,對于RAC數(shù)據(jù)庫來說,單純的增加節(jié)點對于集群性能并不會有太大的提升,其節(jié)點間通訊等對資源耗費較大。
以虛擬化技術為手段,以Swingbench為測試工具,實現(xiàn)了Oracle 12C RAC集群在單節(jié)點、雙節(jié)點運行情況下的數(shù)據(jù)庫性能壓力測試研究。從測試結果來看,雙節(jié)點集群的性能是比單節(jié)點集群數(shù)據(jù)庫性能更好,但是從資源投入得到的回報角度出發(fā),其性能上的提升遠遠沒有達到期望。如果在真實環(huán)境當中,當集群數(shù)據(jù)庫環(huán)境無法滿足應用系統(tǒng)的需求時,不能單一從增加資源這個層面來處理,可能還得考慮集群環(huán)境的優(yōu)化等因素,從而才能為應用系統(tǒng)提供更優(yōu)的數(shù)據(jù)庫運行環(huán)境。數(shù)據(jù)庫集群環(huán)境的性能得從多方面綜合處理,才能更好的保障應用系統(tǒng)的需求。