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