成 雄,趙雪雷,葉曉景,左艷榮,黃智勇
Oracle 11g實時應用集群下的高可用彈性架構數(shù)據(jù)庫升級
成雄,趙雪雷,葉曉景,左艷榮,黃智勇
目的:將“軍衛(wèi)一號”系統(tǒng)從單點運算模式升級到Oracle實時應用集群(real application cluster,RAC)模式,排除業(yè)務系統(tǒng)的單點故障,保障醫(yī)療數(shù)據(jù)安全,易于將來的系統(tǒng)升級和部署。方法:搭建RAC軟硬件環(huán)境,進行數(shù)據(jù)庫升級,部署Data Guard。結(jié)果:系統(tǒng)升級后,數(shù)據(jù)庫可以達到高可用性和高效性,可在更少停機的情況下對數(shù)據(jù)庫進行維護和升級,縮短業(yè)務系統(tǒng)停機時間。結(jié)論:此次升級使數(shù)據(jù)庫系統(tǒng)從原來的單節(jié)點剛性架構優(yōu)化為多節(jié)點的彈性架構,在提升系統(tǒng)性能的同時提高了安全性和可擴展性。
軍衛(wèi)一號;Oracle;升級;RAC;Data Guard
我院從2001年開始運行“軍衛(wèi)一號”信息系統(tǒng),運行至今,現(xiàn)有應用子系統(tǒng)近80個,工作站近700臺,數(shù)據(jù)庫增至106 GB?,F(xiàn)有醫(yī)院數(shù)據(jù)庫是運行在單臺物理服務器上的一個單實例的Oracle 11g數(shù)據(jù)庫。隨著醫(yī)院信息化的發(fā)展,醫(yī)院信息系統(tǒng)越來越多,數(shù)據(jù)庫服務器的負荷日益加重[1],現(xiàn)有架構在安全性和可用性上都無法滿足醫(yī)院的規(guī)模,一旦數(shù)據(jù)庫的相關文件受損、丟失或出現(xiàn)單點故障,恢復工作的時間不可控,將嚴重影響醫(yī)院的正常工作和業(yè)務開展[2]。原來數(shù)據(jù)庫備份方案采用停機冷備份,但隨著數(shù)據(jù)量增大,停機時間變長,對醫(yī)院業(yè)務會產(chǎn)生較大影響。
1.1系統(tǒng)升級方案
針對上述現(xiàn)狀我院采取了如下升級方案:
(1)部署2臺16核64 GB內(nèi)存的IBM X3850服務器,安裝Red Hat Enterprise Linux Server release 5.5操作系統(tǒng)取代現(xiàn)有HP Windows 2008服務器,提高整體性能和穩(wěn)定性,解決之前的運行負荷高等問題。
(2)部署1臺IBM V7000磁盤柜作為主帶框,將所有醫(yī)院信息系統(tǒng)(hospital information system,HIS)數(shù)據(jù)集中存取,部署另一臺IBM V7000磁盤柜作備份,利用IBM V7000的存儲虛擬化特性,使2個磁盤柜部署互為鏡像,有效保障數(shù)據(jù)的存儲安全,實現(xiàn)2臺存儲設備數(shù)據(jù)同步寫入,保證業(yè)務連續(xù)[3]。
(3)將Oracle軟件升級到11.2.03版本,配置實時應用集群(real application cluster,RAC)功能,實現(xiàn)雙機負載均衡、互為備份,解決之前Oracle 11.1.07版本下固有的性能瓶頸。
(4)原有生產(chǎn)庫HP-580G7服務器作為災備的服務端,實現(xiàn)對數(shù)據(jù)的保護,實現(xiàn)與主業(yè)務庫快速切換及災難性恢復。
1.2服務器系統(tǒng)安裝和生產(chǎn)環(huán)境搭建
服務器部署的主要工作包括操作系統(tǒng)安裝、IP地址設置(具體的IP規(guī)劃如圖1所示)、安裝多路徑軟件、測試服務器與存儲的連接性和可用性、裸盤映射等。
RAC能使多個服務器同時共享對某個單一數(shù)據(jù)庫的實時訪問,從而獲取更高的可用性、最靈活的可伸縮性以及經(jīng)濟型的系統(tǒng)架構[4],是Oracle新版數(shù)據(jù)庫中采用的一項新技術,也是Oracle數(shù)據(jù)庫支持網(wǎng)格計算環(huán)境的核心技術。其優(yōu)點如下:
(1)多節(jié)點負載均衡。
(2)提供高可用、故障容錯和無縫切換功能,將硬件和軟件錯誤造成的影響最小化。
(3)通過并行執(zhí)行技術提高事務響應時間(通常用于數(shù)據(jù)分析系統(tǒng))。
(4)通過橫向擴展提高每秒交易數(shù)和連接數(shù)(通常對于聯(lián)機事務系統(tǒng))。
(5)節(jié)約硬件成本,可以用多個廉價×86服務器代替昂貴的小型機或大型機,并節(jié)約維護成本。
(6)可擴展性好,方便添加、刪除節(jié)點,擴展硬件資源。
(7)易于部署,應用程序客戶端通過SCAN IP訪問集群,使得集群內(nèi)部的架構調(diào)整對應用程序客戶端完全透明。只需要部署集群端即可,無需部署客戶端。
具體的RAC和Data Guard的拓撲結(jié)構如圖1所示。
圖1 RAC和Data Guard配置部署圖
2.1RAC節(jié)點和Data Guard配置
安裝操作系統(tǒng),按照圖1中給出的IP編輯操作系統(tǒng)HOSTS文件,并為各服務器物理網(wǎng)卡配置如圖1所示的IP地址,同時需要確保服務器和存儲之間的裸盤映射成功。
2.2RAC的安裝及客戶端配置
配置完服務器的IP地址、存儲空間及操作系統(tǒng)環(huán)境后,即可進行RAC的安裝。首先安裝GRID軟件,然后安裝數(shù)據(jù)庫軟件,最后對數(shù)據(jù)庫偵聽文件進行配置。由于我院業(yè)務系統(tǒng)采用了客戶端/服務器(client/server,C/S)架構,所以需要在客戶端配置相應的客戶端文件以實現(xiàn)相應的高可用性,連接文件具體的配置內(nèi)容如下:
DBSERVER=
(DESCRIPTION=
(ADDRESS_LIST=
(ADDRESS=(PROTOCOL=TCP)(HOST= 192.168.0.67)(PORT=1521))
(LOAD_BALANCE=yes) )
(CONNECT_DATA= (SERVICE_NAME=orcl) (FAILOVER_MODE=
(TYPE=SELECT)
(METHOD=BASIC)
(RETRIES=180)
(DELAY=5)
)
)
)
3.1安裝數(shù)據(jù)庫軟件和運行表空間創(chuàng)建腳本
安裝完集群軟件后,在2個節(jié)點和Data Guard服務器上分別安裝數(shù)據(jù)庫軟件,設置如圖1所示的數(shù)據(jù)庫實例名,在其中1個節(jié)點上創(chuàng)建與源庫一致的表空間和數(shù)據(jù)文件。
3.2數(shù)據(jù)庫的環(huán)境配置
由于采用全庫導入和導出的方法,所以只需要創(chuàng)建與源庫一致的表空間和數(shù)據(jù)文件即可。同時根據(jù)服務器的配置設置相應參數(shù),并且關閉Oracle默認的審計功能。需要注意的是:一定要提前運行Catproc.sql和catproc.sql包,否則可能導致數(shù)據(jù)導入失敗。
3.3制訂測試計劃和回退方案
由于本次升級涉及方面很多,包括服務器、操作系統(tǒng)和數(shù)據(jù)庫,所以要制訂詳細的測試計劃[5]。測試計劃應包括服務器軟硬件測試、性能測試、壓力測試、業(yè)務軟件測試、數(shù)據(jù)一致性測試,尤其對業(yè)務軟件需要詳細測試,還要對項目整體實施時間進行評估,確保系統(tǒng)的割接時間。最后還要制訂回退方案,如果系統(tǒng)割接不成功,確保業(yè)務系統(tǒng)還能回退到原來的數(shù)據(jù)庫系統(tǒng)。
3.4數(shù)據(jù)遷移
采用數(shù)據(jù)泵命令進行導出和導入,可以指定多個線程,大大縮短了系統(tǒng)的割接時間。
對應導出命令如下:
expdp system/lj222 DIRECTORY=DUMP_DIR dumpfile=HISFULL_%U.DMP FULL=Y parallel=15LOGFILE=EMPDP.LOG
對應導入命令如下:
impdp system/lj222 DIRECTORY=dump_dir DUMPFILE=HISFULL_%U.DMP full=y buffer=20480000 parallel=40 logfile=impdp.log
導入完成后查看是否有無效的過程和觸發(fā)器等。通過數(shù)據(jù)的重新導入,重組了數(shù)據(jù)庫的存儲空間,有效壓縮了整理段空間和表空間的使用,提高了數(shù)據(jù)庫的訪問效率[6]。
Data Guard配置包括1個生產(chǎn)數(shù)據(jù)庫和1個或多個備用數(shù)據(jù)庫[7]。這些數(shù)據(jù)庫通過Oracle Net進行連接,數(shù)據(jù)庫可以分布在同一個或多個不同地理位置上的服務器[8]。在系統(tǒng)穩(wěn)定運行1周后,將原來的主庫配置成物理Data Gurad,并將其以只讀方式打開,可以為醫(yī)院的很多報表系統(tǒng)提供查詢服務,減輕生產(chǎn)庫的壓力。在將來條件允許的情況下還可以增加邏輯Data Gurad主機,支持額外的數(shù)據(jù)庫結(jié)構,也可以支持特定的報表或業(yè)務需求。
原來所有業(yè)務均是由1臺服務器承擔,完成升級后,業(yè)務量平均分配到了2個節(jié)點上,提升了客戶端在業(yè)務高峰時應用的響應能力,用戶最直觀的感受就是速度比以前提升明顯。升級前需要每天停機40 min左右對數(shù)據(jù)庫進行數(shù)據(jù)備份,升級后采用了熱備和Data Gurad技術,每天不用停機備份數(shù)據(jù),有效地減少了停機時間[9]。在集群一個節(jié)點故障的情況下,集群能自動將故障節(jié)點上的SESSIONS轉(zhuǎn)移到健康的節(jié)點上,實現(xiàn)了透明故障轉(zhuǎn)移。其部署更便捷,只需將原先主庫IP地址設置為集群的SCAN IP地址,客戶端即可連接現(xiàn)有集群。
本次工作完成了HIS數(shù)據(jù)庫升級,使其從原來單點結(jié)構升級成RAC體系架構。RAC體系架構不僅解決了原有架構因單點故障而引發(fā)的系統(tǒng)停機,實現(xiàn)各個節(jié)點負載均衡提升業(yè)務能力,單點故障時也能實現(xiàn)客戶端故障轉(zhuǎn)移。新架構不僅更加安全有效地保護了數(shù)據(jù)庫數(shù)據(jù)安全,同時也提升了可擴展性。當服務器需要升級維護時可以不中斷前端業(yè)務系統(tǒng),當數(shù)據(jù)量增加時通過Oracle自動存儲管理(automatic storage management,ASM)可以動態(tài)添加存儲磁盤來提升數(shù)據(jù)庫的存儲容量,也可以替換更高效性能的固態(tài)硬盤(solid state drives,SSD)來提升數(shù)據(jù)庫的輸入/輸出(input/output,I/O)性能。
[1]王興強,劉長興,劉國偉.“軍衛(wèi)一號”數(shù)據(jù)庫“瘦身”方法設計[J].醫(yī)療衛(wèi)生裝備,2014,35(8):67-68,111.
[2]張帆,李響,張紅君.軍衛(wèi)一號Oracle8i到Oraclel1g在異構環(huán)境下的升級過程[J].醫(yī)學信息學雜志,2014,35(1):26-28,32.
[3]郭平彩,張慶豐,朱有存.“軍衛(wèi)一號”實現(xiàn)Oracle8i到Oraclel0g升級方法[J].醫(yī)療衛(wèi)生裝備,2011,32(3):52-54.
[4]曲建峰,孫翌,徐汝興,等.Oracle RAC集群技術在圖書館集成管理系統(tǒng)中的應用[J].現(xiàn)代圖書情報技術,2012(7/8):133-138.
[5]曹銳,楊愛華.Oracle 10g RAC下“軍衛(wèi)一號”數(shù)據(jù)庫升級和Oracle Data Guard部署[J].中國數(shù)字醫(yī)學,2013,8(9):91-93.
[6]李剛榮,李晴輝,周琳.“軍衛(wèi)一號”工程中心服務器升級為UNIX操作系統(tǒng)[J].解放軍醫(yī)院管理雜志,2008,5(8):774-776.
[7]宋亮.醫(yī)院信息系統(tǒng)中Oracle Data Guard部署與實踐[J].醫(yī)療衛(wèi)生裝備,2013,34(5):62-65.
[8]張巖,朱羽,張劍.醫(yī)院信息系統(tǒng)Oracle數(shù)據(jù)庫高可用方案探討[J].中國數(shù)字醫(yī)學,2009,4(8):69-70.
[9]劉志敏,劉微.利用Oracle8i的DataGuard實現(xiàn)“軍衛(wèi)一號”數(shù)據(jù)庫備份[J].醫(yī)療衛(wèi)生裝備,2006,27(8):40—41.
(收稿:2014-06-09修回:2014-09-15)
Upgrading database with high availability and elastic architecture under Oracle 11g RAC
CHENG Xiong,ZHAO Xue-lei,YE Xiao-jing,ZUO Yan-rong,HUANG Zhi-yong
(Department of Informantion,the 113th Hospital of the PLA,Ningbo 315040,Zhejiang Province,China)
Objective To upgrade No.1 Military Medical Project from single operation to Oracle RAC to eliminate single failure of the operation system,protect medical data and lay a foundation for the following upgrade and deployment. Methods RAC software and hardware environment was constructed for database upgrade and deployment of Data Guard. Results The database was gifted with high availability and high performances,and database maintenance and upgrade could be carried out with the operation system less ceased than before.Conclusion The database is upgraded from a single-mode rigid architecture to a multi-mode elastic one,with the performances,safety and extendibility enhanced greatly.[Chinese Medical Equipment Journal,2015,36(5):57-59]
No.1 Military Medical Project;Oracle;upgrade;RAC;Data Guard
[中國圖書資料分類號]R318;TP311.13A
1003-8868(2015)05-0057-03
10.7687/J.ISSN1003-8868.2015.05.057
成雄(1983—),男,工程師,主要從事數(shù)據(jù)庫維護方面的研究工作,E-mail:cxlzl2005@163.com。
315040浙江寧波,解放軍113醫(yī)院信息科(成雄,趙雪雷,葉曉景,左艷榮,黃智勇)
黃智勇,E-mail:JD21@163.com