APP下载

Oracle 11g实时应用集群下的高可用弹性架构数据库升级

2015-12-19赵雪雷叶晓景左艳荣黄智勇

医疗卫生装备 2015年5期
关键词:客户端集群架构

成 雄,赵雪雷,叶晓景,左艳荣,黄智勇

Oracle 11g实时应用集群下的高可用弹性架构数据库升级

成雄,赵雪雷,叶晓景,左艳荣,黄智勇

目的:将“军卫一号”系统从单点运算模式升级到Oracle实时应用集群(real application cluster,RAC)模式,排除业务系统的单点故障,保障医疗数据安全,易于将来的系统升级和部署。方法:搭建RAC软硬件环境,进行数据库升级,部署Data Guard。结果:系统升级后,数据库可以达到高可用性和高效性,可在更少停机的情况下对数据库进行维护和升级,缩短业务系统停机时间。结论:此次升级使数据库系统从原来的单节点刚性架构优化为多节点的弹性架构,在提升系统性能的同时提高了安全性和可扩展性。

军卫一号;Oracle;升级;RAC;Data Guard

0 引言

我院从2001年开始运行“军卫一号”信息系统,运行至今,现有应用子系统近80个,工作站近700台,数据库增至106 GB。现有医院数据库是运行在单台物理服务器上的一个单实例的Oracle 11g数据库。随着医院信息化的发展,医院信息系统越来越多,数据库服务器的负荷日益加重[1],现有架构在安全性和可用性上都无法满足医院的规模,一旦数据库的相关文件受损、丢失或出现单点故障,恢复工作的时间不可控,将严重影响医院的正常工作和业务开展[2]。原来数据库备份方案采用停机冷备份,但随着数据量增大,停机时间变长,对医院业务会产生较大影响。

1 系统规划

1.1系统升级方案

针对上述现状我院采取了如下升级方案:

(1)部署2台16核64 GB内存的IBM X3850服务器,安装Red Hat Enterprise Linux Server release 5.5操作系统取代现有HP Windows 2008服务器,提高整体性能和稳定性,解决之前的运行负荷高等问题。

(2)部署1台IBM V7000磁盘柜作为主带框,将所有医院信息系统(hospital information system,HIS)数据集中存取,部署另一台IBM V7000磁盘柜作备份,利用IBM V7000的存储虚拟化特性,使2个磁盘柜部署互为镜像,有效保障数据的存储安全,实现2台存储设备数据同步写入,保证业务连续[3]。

(3)将Oracle软件升级到11.2.03版本,配置实时应用集群(real application cluster,RAC)功能,实现双机负载均衡、互为备份,解决之前Oracle 11.1.07版本下固有的性能瓶颈。

(4)原有生产库HP-580G7服务器作为灾备的服务端,实现对数据的保护,实现与主业务库快速切换及灾难性恢复。

1.2服务器系统安装和生产环境搭建

服务器部署的主要工作包括操作系统安装、IP地址设置(具体的IP规划如图1所示)、安装多路径软件、测试服务器与存储的连接性和可用性、裸盘映射等。

2 搭建RAC

RAC能使多个服务器同时共享对某个单一数据库的实时访问,从而获取更高的可用性、最灵活的可伸缩性以及经济型的系统架构[4],是Oracle新版数据库中采用的一项新技术,也是Oracle数据库支持网格计算环境的核心技术。其优点如下:

(1)多节点负载均衡。

(2)提供高可用、故障容错和无缝切换功能,将硬件和软件错误造成的影响最小化。

(3)通过并行执行技术提高事务响应时间(通常用于数据分析系统)。

(4)通过横向扩展提高每秒交易数和连接数(通常对于联机事务系统)。

(5)节约硬件成本,可以用多个廉价×86服务器代替昂贵的小型机或大型机,并节约维护成本。

(6)可扩展性好,方便添加、删除节点,扩展硬件资源。

(7)易于部署,应用程序客户端通过SCAN IP访问集群,使得集群内部的架构调整对应用程序客户端完全透明。只需要部署集群端即可,无需部署客户端。

具体的RAC和Data Guard的拓扑结构如图1所示。

图1 RAC和Data Guard配置部署图

2.1RAC节点和Data Guard配置

安装操作系统,按照图1中给出的IP编辑操作系统HOSTS文件,并为各服务器物理网卡配置如图1所示的IP地址,同时需要确保服务器和存储之间的裸盘映射成功。

2.2RAC的安装及客户端配置

配置完服务器的IP地址、存储空间及操作系统环境后,即可进行RAC的安装。首先安装GRID软件,然后安装数据库软件,最后对数据库侦听文件进行配置。由于我院业务系统采用了客户端/服务器(client/server,C/S)架构,所以需要在客户端配置相应的客户端文件以实现相应的高可用性,连接文件具体的配置内容如下:

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 数据库升级

3.1安装数据库软件和运行表空间创建脚本

安装完集群软件后,在2个节点和Data Guard服务器上分别安装数据库软件,设置如图1所示的数据库实例名,在其中1个节点上创建与源库一致的表空间和数据文件。

3.2数据库的环境配置

由于采用全库导入和导出的方法,所以只需要创建与源库一致的表空间和数据文件即可。同时根据服务器的配置设置相应参数,并且关闭Oracle默认的审计功能。需要注意的是:一定要提前运行Catproc.sql和catproc.sql包,否则可能导致数据导入失败。

3.3制订测试计划和回退方案

由于本次升级涉及方面很多,包括服务器、操作系统和数据库,所以要制订详细的测试计划[5]。测试计划应包括服务器软硬件测试、性能测试、压力测试、业务软件测试、数据一致性测试,尤其对业务软件需要详细测试,还要对项目整体实施时间进行评估,确保系统的割接时间。最后还要制订回退方案,如果系统割接不成功,确保业务系统还能回退到原来的数据库系统。

3.4数据迁移

采用数据泵命令进行导出和导入,可以指定多个线程,大大缩短了系统的割接时间。

对应导出命令如下:

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

导入完成后查看是否有无效的过程和触发器等。通过数据的重新导入,重组了数据库的存储空间,有效压缩了整理段空间和表空间的使用,提高了数据库的访问效率[6]。

4 部署Data Guard

Data Guard配置包括1个生产数据库和1个或多个备用数据库[7]。这些数据库通过Oracle Net进行连接,数据库可以分布在同一个或多个不同地理位置上的服务器[8]。在系统稳定运行1周后,将原来的主库配置成物理Data Gurad,并将其以只读方式打开,可以为医院的很多报表系统提供查询服务,减轻生产库的压力。在将来条件允许的情况下还可以增加逻辑Data Gurad主机,支持额外的数据库结构,也可以支持特定的报表或业务需求。

5 效果分析

原来所有业务均是由1台服务器承担,完成升级后,业务量平均分配到了2个节点上,提升了客户端在业务高峰时应用的响应能力,用户最直观的感受就是速度比以前提升明显。升级前需要每天停机40 min左右对数据库进行数据备份,升级后采用了热备和Data Gurad技术,每天不用停机备份数据,有效地减少了停机时间[9]。在集群一个节点故障的情况下,集群能自动将故障节点上的SESSIONS转移到健康的节点上,实现了透明故障转移。其部署更便捷,只需将原先主库IP地址设置为集群的SCAN IP地址,客户端即可连接现有集群。

6 结语

本次工作完成了HIS数据库升级,使其从原来单点结构升级成RAC体系架构。RAC体系架构不仅解决了原有架构因单点故障而引发的系统停机,实现各个节点负载均衡提升业务能力,单点故障时也能实现客户端故障转移。新架构不仅更加安全有效地保护了数据库数据安全,同时也提升了可扩展性。当服务器需要升级维护时可以不中断前端业务系统,当数据量增加时通过Oracle自动存储管理(automatic storage management,ASM)可以动态添加存储磁盘来提升数据库的存储容量,也可以替换更高效性能的固态硬盘(solid state drives,SSD)来提升数据库的输入/输出(input/output,I/O)性能。

[1]王兴强,刘长兴,刘国伟.“军卫一号”数据库“瘦身”方法设计[J].医疗卫生装备,2014,35(8):67-68,111.

[2]张帆,李响,张红君.军卫一号Oracle8i到Oraclel1g在异构环境下的升级过程[J].医学信息学杂志,2014,35(1):26-28,32.

[3]郭平彩,张庆丰,朱有存.“军卫一号”实现Oracle8i到Oraclel0g升级方法[J].医疗卫生装备,2011,32(3):52-54.

[4]曲建峰,孙翌,徐汝兴,等.Oracle RAC集群技术在图书馆集成管理系统中的应用[J].现代图书情报技术,2012(7/8):133-138.

[5]曹锐,杨爱华.Oracle 10g RAC下“军卫一号”数据库升级和Oracle Data Guard部署[J].中国数字医学,2013,8(9):91-93.

[6]李刚荣,李晴辉,周琳.“军卫一号”工程中心服务器升级为UNIX操作系统[J].解放军医院管理杂志,2008,5(8):774-776.

[7]宋亮.医院信息系统中Oracle Data Guard部署与实践[J].医疗卫生装备,2013,34(5):62-65.

[8]张岩,朱羽,张剑.医院信息系统Oracle数据库高可用方案探讨[J].中国数字医学,2009,4(8):69-70.

[9]刘志敏,刘微.利用Oracle8i的DataGuard实现“军卫一号”数据库备份[J].医疗卫生装备,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—),男,工程师,主要从事数据库维护方面的研究工作,E-mail:cxlzl2005@163.com。

315040浙江宁波,解放军113医院信息科(成雄,赵雪雷,叶晓景,左艳荣,黄智勇)

黄智勇,E-mail:JD21@163.com

猜你喜欢

客户端集群架构
基于FPGA的RNN硬件加速架构
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
海上小型无人机集群的反制装备需求与应对之策研究
如何看待传统媒体新闻客户端的“断舍离”?
一种无人机集群发射回收装置的控制系统设计
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
WebGIS架构下的地理信息系统构建研究