HIS数据库跨版本跨平台迁移

李想,苏玉成,杨艳华,蒋昆

空军军医大学西京医院 数字化中心,陕西 西安 710032

[摘 要] 目的 替换我院承载HIS系统的IBM小机,同时进行数据库升级。 方法 通过大量的调研、论证、测试与沟通,建立全新的服务架构,明确了数据库升级目标,确定了最为安全、稳妥的迁移方案。 结果 实现了既定时间内的数据库切换,并且排除相应故障,完成HIS迁移工作。 结论 通过此次迁移验证了在X86架构下HIS系统稳定运行的可能,同时提高了医院HIS系统的健壮性、稳定性、安全性,保障了医院主要业务的正常开展,为未来医院更多业务的展开打下了坚实的基础。

[关键词] 医院信息系统;数据库升级迁移;Oracle 11g;军卫一号

 

引言

我院HIS系统于1998年开始建设,在2009年针对内存和监听器的bug已经历过一次Oralce版本升级和服务器硬件升级。目前服务器采用集群模式,由2009年采购的两台IBM P570小型机组成,Oracle版本为10.2.0.3,设备上线以来,系统运行稳定。HIS灾备系统为1台P570服务器,采用Oracle DataGuard实现容灾。由于医院业务快速增长(2017年医院门急诊量387.25万人次,住院收容量14.03万人次,HIS数据库容量约700 G,高峰数据库连接数约1200,并发数约180),以及设备使用时间过长已进入老化阶段等原因,HIS业务实际运行中存在以下问题:① HIS业务系统单点无法承担全院业务;② 一旦双节点完全宕机,系统恢复存在风险,严重威胁医院业务运转;③ HIS环境上未实现数据读写分离,存有数据查询作业,对数据库性能有一定影响;④ 数据库版本存在bug,导致医院业务多次受到影响;⑤ HIS数据库目前已运行9年,数据库存在很多高水位的表段;⑥ 灾备系统无法实时查询数据,其数据的准确性无法得倒验证,实际启用存在一定风险。考虑到以上问题,为保障医院核心业务的稳定运行,需要对HIS系统进行改造升级 [1-3]

1 改造方向

HIS系统是我院医疗信息化系统中的核心系统,承担着院内最为重要的任务,因此升级改造工作必须将安全、稳定作为前提。升级改造工作包括数据库服务器更换和数据库版本升级、数据容灾系统的建设,迁移前服务器拓扑,见图1。

图1 迁移前服务器拓扑

本次升级改造采购了4台服务器、4台SAN交换机,新HIS系统数据库生产服务器由两台高性能X86服务器构成,替代原有的P570小型机。配置8颗16核处理器E7-8860 v3,内存配置512 G。配置两块冗余的FC光纤HBA卡连接两台SAN交换机。为public接口配置两个万兆网络光口,在操作系统中完成网卡绑定,分别连接到核心交换机实现服务网络冗余;为心跳传输配置两个万兆网络光口,利用Oracle 11g数据库的HAIP技术,将心跳流量分发到这两个网络接口上:一是实现负载均衡,消除心跳流量大对系统性能的压力;二是实现心跳网络冗余。Oracle 10则无法提供HAIP功能,只能采用网卡绑定技术,迁移后网络架构,见图2 [4-6]

图2 迁移后网络架构

数据库方面在论证时医院充分考虑了升级至Oracle 11g和Oracle 12c所可能带来的收益与风险,对于HIS系统来说,以最大限度减少数据库层面出现的bug,同时满足实际需求且运行稳定的版本为最主要的目标,另外,通过Oracle DataGuard读写分离功能,将部分查询业务迁移到备库运行,减轻主库的负载压力,Oracle DataGuard读写分离在Oracle 11g才支持,因此确定本次数据库升级的目标为11g [7-8]

生产数据库从P570迁移到X86服务器后,在容灾端部署容灾系统,采用和生产系统同样的平台/架构,通过Oracle Active DataGuard完成容灾建设,实现主备系统数据同步,保障数据安全和系统持续可用性。

2 数据迁移方案

为了尽量缩短业务停顿时间,新建X86平台数据库系统采用同生产系统完全一样的网络地址配置,将X86服务器的网卡独立连接到一个单独VLAN中。在P570和X86服务器上单独配置一个接口和相应的临时地址,用网络直连线连通用作数据同步传输。这样,在服务器切换的时候,只需要更改网络连接就可以了,无需更改Oracle的配置,缩短切换时间。

2.1 数据迁移完成方式分析

2.1.1 采用容灾软件完成

在迁移前完成容灾软件的部署安装,开始数据同步。待数据同步完成后即可以展开数据比对、业务功能模块测试等工作。GoldenGate作为我们的首选迁移工具,迁移完成后使用Oracle GoldenGate Veridata进行全库数据比对。

由于Power平台现有环境版本与Linux平台环境版本差异较大,所以在GoldenGate测试当中会出现一些不兼容的问题。经多次调整后,Power平台Oracle GoldenGate版本为ogg 11.1.1.1.0,Java版本为 Java 1.6;Linux平台Oracle GoldenGate版本为ogg 12.2.1.1.0,Linux操作系统版本为rhel 6.8,Java版本为Java 1.8。

2.1.2 采用EXPDP/IMPDP完成

利用EXPDP工具在晚间导出数据,减少对业务系统的影响。利用IMPDP工具将导出数据恢复到X86系统,检查导出日志,查找是否有可能导致数据不一致的报错信息。完成导入后,进行业务功能模块测试等工作。

方案1停机时间短,但软件存在不可控的因素易发生错误,方案2安全可靠但停机时间长。为保证迁移成功,两个方案同时并行,容灾系统等迁移成功后再行搭建。

2.2 回退方案

迁移失败不涉及回退,如果迁移失败,则将原HIS(AIX)系统恢复使用。迁移后出现问题解决方案包括:① 可解决的问题,通过修改程序或者调整数据库配置;② 临时不可解决的问题,针对临时不可正常使用的应用启用老库,在问题解决后,把涉及到的相关数据导入新库;③ 遇到大范围无法解决的问题,将数据库导入回老库。

3 数据库迁移过程

考虑国庆假期来院患者较少,为使迁移后能尽快通过正常工作日检验潜在问题,且为可能出现的迁移失败留出二次尝试时间。在10月6号晚23点正式进行切换时,启用急诊临时服务器,保障急诊患者收费系统正常运行。在迁移过程中,为了保障切换顺利完成,两套迁移方案同步进行,互不影响,最大限度保障迁移过程稳定进行:

GoldenGate容灾软件从10月4日上午9点开始进行第一次数据导入,在11点完成数据导入,此后开启GoldenGate软件的数据同步功能,由Power平台向X86进行数据传输,从而保障在切换之时(10月6日)两个数据库只需比对数据一致性,一致后无需再进行其它工作。GoldenGate软件的配置参数,见图3~5。

数据泵EXPDP在10月6日业务停止后,由Power平台导出数据,但由于GoldenGate的Veridata数据比对顺利完成,在完成数据导出后,未在X86平台执行数据导入操作。

3.1 切换前检查和数据比对、数据库备份

新老系统运行检查。在两套X86平台上进行硬件信息检查,同时在Power平台上手工完成数据库配置备份、参数文件、listener.ora备份及检查。调整crontab中的备份时间,避免干扰切换。

图3 GoldenGate关键参数1

图4 GoldenGate关键参数2

图5 GoldenGate关键参数3

3.2 HIS数据库数据同步检查

给全院终端发送消息,要求关闭HIS相关应用系统,后台关闭数据库监听,更改监听器的端口为1525,避免未知客户端连接到数据库,产生新增数据。重启HIS数据库,检查监听状态,执行ps -ef|grep local|wc -l,检查是否有持续增加的连接,确保系统不会产生新数据。

针对GoldenGate同步的数据库进行数据比对。查询关键表记录数和表数据,进行手工比对条数及记录内容,比对过程使用的是Beyond Compare软件,该软件极大的提高了工作效率。数据比对一致后,比对数据库其他对象,完成新数据库失效对象编译,序列重建。

3.3 HIS数据库切换

数据库比对完成后,进行应用测试,将应用连接临时指向新的Linux RAC服务器(数据比对用临时地址)进行应用可用性验证,应用验证通过后,拔出P570服务器的接口网线,切断网络连接。关闭Linux服务器的数据库监听,修改Linux RAC服务器的public接口VLAN,检查public地址和VIP地址状态。启动Linux RAC服务器的监听器,检查监听。数据库运行状态检查。

3.4 新系统上线

各项检查完成,确认无误后,通知全院终端系统升级完毕,正式启用。新系统上线后,在服务器端持续监控数据库状态、服务器指标。

4 迁移过程中问题处理

整个迁移从2017年10月6日晚23:00开始,在2017年10月7日凌晨1点40分完成数据导入,开始进行老库网络隔离,在1点50分开始进行系统试运行。

试运行一开始就发现服务器上线初期网络无法ping通,排查之后发现在网关上只配置了一台服务器的地址,及时在网关上添加另一台服务器的配置后,业务即可正常开展。

在财务软件确认正常使用之后,急诊系统上线后发现开具检查单时系统报错,经跟踪发现急诊系统由于调用Oracle 10g内部wmsys.wm_concat函数,在系统升级到Oracle 11g后,由于不再支持此函数导致急诊系统不可用,之前测试时已经发现,但系统一直没有更新。该系统在进行紧急升级后,问题解决。

第二天医院业务部门反映系统会出现不定期卡顿10-30s的现象。经过排查系统日志/var/log/messages发现是有磁盘链路丢失现象,检查设备网络链路后发现是服务器端1口HBA卡模块接触不良问题,最终通过更换HBA卡模块解决问题 [9-11]

5 亮点与收获

通过本次HIS系统迁移,成功实现了如下效果:

(1)服务器的性能与安全性升级,提升服务器整体性能约10倍,单台服务器测试稳定并发数可达500,极限连接数可到800,即可撑起医院全部业务。在硬件架构上,多处采用冗余设计,从主备业务,到心跳冗余,到网卡冗余,大大提升了HIS硬件服务整体的稳定性和可靠性。

(2)数据库的升级,通过Oracle 10g升级至Oracle 11g在提升数据库稳定性减少bug的同时,依托Oracle 11g的功能实现数据库读写分离,让standby database分担业务数据库的负载压力,更高效地利用现有资源,使HIS数据库的高可用性得到增强。同时,通过迁移本身有效地解决了数据库高水位问题,有效利用空间,有效地减小业务数据库的负载压力,可以有效地减小业务环境的故障点。另外,数据库的升级还带来了自动存储管理(Automatic Storage Management,ASM)、 自 动 内 存 优 化(Auto Memory Tuning,AMT)、自动诊断知识库(Automatic Diagnostic Repository,ADR)等等一系列新特性,大大简化了管理人员的维护工作量 [12-14]

(3)数据库从P570迁移到X86服务器,Oracle GoldenGate 迁移比用传统EXPDP/IMPDP方式更高效,数据比对迁移完成后使用Oracle GoldenGate VeriData进行全库比对,但比对耗时比较大,尤其是像1亿多条数据的大表。本次迁移经过多次调整VeriData参数和表级筛选,提前比对,实现我们较理想的结果。

6 结语

目前新系统在医院已经平稳运行近6个月,未出现故障。通过本次迁移,确认了军卫HIS数据库在X86平台及Oracle 11g环境下可以正常运行,同时验证了Oracle GoldenGate软件在数据库迁移方面的可行性、利用Oracle RAC to RAC DataGuard软件实现灾备环境建设以及数据库读写分离的可行性。

按照近年来我院业务增长速率,预估我院业务量在未来5~7年将会增长40%,通过此次迁移可以确保医院在未来5~7年里HIS系统的稳定、高效运行,也在HIS系统灾备方面打下了坚实的基础,同时在数据库服务的建设与迁移方面积累了许多宝贵的经验,希望本案例能为其他医院的相关业务系统迁移带来一些思考和帮助。

[参考文献]

[1] 李超峰,马嘉潜,肖华锋,等.HIS系统数据库跨平台迁移实践[J].中国数字医学,2016,11(8):86-88.

[2] 马嘉潜,李超锋,邓晓焱,等.医院信息系统升级方案与实现[J].医学信息学杂志,2016,37(9):25-28.

[3] 田凯元.浅析我院HIS系统升级的必要性及方案制定[J].医疗装备,2014,27(9):18-20.

[4] 王志勇,魏民,项耀钧.“军卫一号”HIS双活架构设计[J].中国数字医学,2016,11(2):85-86.

[5] 刘浩.浅论HIS系统升级中的数据迁移[J].中国卫生信息管理杂志,2007,4(3):15-17.

[6] 田凯元.浅析我院HIS系统升级的必要性及方案制定[J].医疗装备,2014,27(9):18-20.

[7] 刘亚威,钱诚,翁盛鑫.HIS平台升级改造及数据保护方案设计[J].医疗卫生装备,2013,34(11):49-51.

[8] 叶瑞绵,王晓华,丁慧莹.Oracle数据库跨版本的升级实现[J].中国数字医学,2016,11(5):87-88.

[9] 亢军贤,都继军,余艳红,等.疗养信息系统从Oracle8i到Oracle11g升级过程的研究和实践[J].电脑知识与技术,2017,13(1):1-2.

[10] 唐红,苏丽娟.“军卫一号”数据库升级设计与应用研究[J].医疗卫生装备,2015,36(10):65-67.

[11] 成雄,赵雪雷,叶晓景,等.Oracle 11g实时应用集群下的高可用弹性架构数据库升级[J].医疗卫生装备,2015,36(5):57-59.

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

[13] 曹锐,杨爱华,蔺宁.Oracel 10g RAC下“军卫一号”数据库升级和Oracle DataGuard部署[J].中国数字医学,2013,8(9):91-93.[14] 段然,王毅琳,严波,等.从“军卫一号”的软件架构分析看HIS系统升级方向[J].中国数字医学,2011,6(4):61-63.

 

Database Upgrading and Migration of HIS in Our Hospital

LI Xiang, SU Yucheng, YANG Yanhua, JIANG Kun
Digital Center, Xijing Hospital of the Air Force Medical University, Xi’an Shaanxi 710032, China

Abstract: Objective To replace the IBM small server which running HIS system in our hospital and updata the database at the same time. Methods Through research, demonstration, testing and communication, a new service structure was set up, the target of database upgrade was cleared, and the most safe and reliable migration plan was determined. Results The database switch within a given time was realized and the corresponding fault was eliminated. The HIS migration was completed at last. Conclusion The possibility of stable operation of HIS system under the X86 architecture is verified by the migration, the robustness, stability and safety of HIS is improved, and the normal development of the main businesses of the hospital are ensured. Finally, it has laid a solid foundation for the further development of hospital business.

Key words: HIS; database upgrading and migration; Oracle 11g; No.1 military medical project

通讯作者 邮箱:jason1231@foxmail.com

通讯作者: 蒋昆,高级工程师,主要研究方向为医疗信息化。

修回日期: 2018-03-20

收稿日期: 2018-03-02

[文章编号] 1674-1633(2018)09-0122-03

doi: 10.3969/j.issn.1674-1633.2018.09.032

[文献标识码] C

[中图分类号] TP399

本文编辑 李美松