顾学赛 王梓名
摘 要:随着医院业务量的迅速增加以及新院区数据中心硬件设施的建成,原有数据中心整体迁移到新院区势在必行,Oracle作为目前最常用的商用数据库管理系统,有多种数据迁移技术方法,其中DataGuard技术,能在保证数据安全性的前提下,缩短迁移时间,完成业务系统的灾备建设,本文介绍四川大学华西第二医院数据中心由老院区整体迁移到新院区的相关经验,探讨Oracle的DataGuard技术在医院数据迁移中的应用。
关键词:Oracle;Dataguard;数据迁移
中图分类号:TP309.3;TP399-C8 文献标识码:A 文章编号:2096-4706(2019)13-0162-03
Application of Oracle Data Guard Technology in Hospital Data Migration
GU Xuesai,WANG Ziming
(West China Second University Hospital,Sichuan University,Chengdu 610041,China)
Abstract:With the rapid development of hospital business and the construction of hardware facilities of data center in new hospital area,it is imperative for the original data center to migrate to the new hospital area as a whole. As the most commonly used commercial database management system,Oracle has a variety of data migration technologies and methods. Among them,DataGuard technology can shorten the migration time and complete business on the premise of ensuring data security. This paper introduces the experience of the data center of West China Second Hospital of Sichuan University migrating from the old hospital to the new hospital,and discusses the application of Oracles DataGuard technology in hospital data migration.
Keywords:Oracle;Dataguard;data migration
0 引 言
随着医院的发展和新院区的成立,原有的数据中心机房基础设施方面空间有限,机房已经接近最大承载量,旧的服务器、存储等设备老化,性能不足,存在较多风险点[1,2],无法同时承载两个院区的业务,也无法支持更多的外联业务,如医联体、互联网医院等,现有的核心业务系统不管在硬件还是软件方面都越来越难以支撑日益增长的业务量和数据流,因此新的数据中心建设和数据迁移工作势在必行[3]。基于以上情况,在新院区数据中心建设之初,就考虑到未来5至8年的使用规划,新数据中心投入使用前,如何实现数据的迁移和业务系统的平稳过渡将是一个很大的挑战,本文主要介绍医院数据迁移相关经验,探讨Oracle的DG技术在医院数据迁移中的应用。
1 项目背景及确定方案
随着医院的发展,现有的信息系统积累了海量的历史数据,新院区数据中心的建立,将业务系统如何平稳过渡的问题提上日程。目前医院7*24小时的核心业务系统LIS和PACS使用了Oracle数据库,在数据迁移规划中,不可避免需要中断数据库业务,医院的特殊性要求尽量把业务中断时间缩至最短[4],这就对我们把数据迁移至新院区数据中心提出了更高的要求。
最初拟定了两种数据迁移方案,一是提前做数据库的rm全备,通过两个院区中间的千兆专线,把全备拷贝至数据中心的新环境中,然后恢复全备,再使用增备来追平数据。这种方案操作简便,对系统架构要求不高,但是业务中断时间比较长,初步评估业务中断要1个小时以上。二是利用我们现有的Oracle集群(RAC)搭建DataGuard环境,将当前业务系统作为Primary Database,新院区数据中心数据库作为Standby Database,两边通过网络传递联机日志和归档日志,来实现数据同步。这种方案业务系统中断时间短,通过两个库的角色互换,即刻完成数据迁移,评估业务中断时间可控制在半个小时以内,而且不容易造成数据丢失,迁移完成后,原有的旧设备可以直接转为灾备设备,提高老旧设备的利用率,同时完成异地灾备建设。缺点是系统架构复杂,操作难度大,需要经过多次测试和验证。
考虑到需要将对医院医疗业务的影响降至最低,技术方面的复杂性问题,可以通过多次演练测试、固化每次操作步骤解决,而且可以最大程度地保证系统的稳定性、数据库的安全性和数据的一致性等,医院最终选择了第二套方案。
2 Oracle的DG技术用于数据迁移的设计和实现
DataGuard是一种数据库级别的高可用方案,最主要功能是容灾、数据保护、故障恢复等[5],它是在主节点与备用节点间通过日志同步来保证数据同步,可以实现数据库快速切换与灾难恢复[6]。涉及到Oracle数据库的系统数据迁移都使用了同样的技术,本文以LIS系统来讲解操作方案。
2.1 前期准备。
老院区的LIS系统搭在Linux平台Oracle 11g的RAC环境下,版本11.3.0.2,是两台x86服务器,两个院区之前通过千兆光纤专线连通,新院区数据中心采用新采购的4路机架式服务器两台,作为Oracle集群节点服务器。迁移之前在新院区数据中心搭建同样的数据库环境,配置相同的IP地址,在两个集群之间通过DG专用的Vlan实现日志同步。
由于新老院区数据中心内部应用系统均使用相同IP地址,为了防止出现数据穿透,需要在网络上进行策略限制,保证新院区只能通过部分网段的Vlan访问老院区,老院区终端无法访问新院区数据库。
为进一步加强数据安全保障,在做DG同步前,基于存储的rm全备和增备做了快照,同时又创建多个数据还原点。为了防止迁移当天服务器存储网络等突发故障,迁移前一周安排了硬件的每日巡检,同时密切关注Oracle数据库状态,分析AWR日志,每天安排Oracle健康检查,现场除了迁移的具体指挥和操作人员,安排了技术力量强大的团队来应对突发情况,并对数据迁移回退方案也进行了一次模拟演练。
2.2 迁移演练
在正式迁移前,准备至少3次模拟演练,来确保正式迁移的平滑过渡,同时准备回退方案,保证数据的安全。因为新院区数据中心在演练前准备了和生产环境相同的网络环境,为了防止出现数据穿透,真实操作只在新院区环境中进行演练,不做停止、变更当前生产环境的任何操作。
具体演练流程如下:
(1)准备操作工位、网络和终端,打印切换流程图和分时计划。
(2)各操作相关人员依据执行步骤,按照指挥人员的指示进行切换演练操作,及时反馈完成的状态,指挥人员在切换流程图上进行状态更新。
(3)演练总结,相关人员汇报演练过程中遇到的问题,并且进行相应的整改,对一些流程进行优化调整。
演练过程中,及时记录发现的问题以及各个操作的时间节点,通过不断的总结和讨论,消除各种不利因素,通过PDCA循环,保证每次演练效果更好。第三次演练时,重要步骤操作时间误差可有效地控制在两分钟之内。通过充分演练,解决了迁移过程中的问题,对可能出现的突发情况制定了详细的应对措施,为正式迁移打好了坚实的基础。
2.3 正式迁移
医院信息系统迁移涉及多个业务系统,使用Oracle的DG迁移的系统只是其中一部分,系统整体迁移流程如图1所示。
迁移之前老院区数据库在DG中的角色为Primary Database,在新院区将基础环境搭建好后,通过Oracle的rm恢复还原数据库,将新院区的数据库作为Standby Database,Standby数据库是Primary数据库的复制,业务上是一致的。一旦搭建完成,DG通过应用Primary数据库的Redo自动维护Standby数据库,同步数据过程中也不会占用过高的网络带宽资源,即使是主库业务高峰期,对其影响也非常小,因此能够保证迁移前生产库的安全稳定。选择业务低峰期的时候进行数据迁移,尽量把停机对业务造成的影响降到最低,可以将实际上的迁移过程理解为Primary Database和Standby Database的角色互换。在最大保护模式或最高可用模式下,Failover可以保障数据无丢失。具体迁移步骤如下:
(1)迁移前需要认真检查主备数据库运行状态,检查数据库同步情况,确认主库日志序列和备库Standby日志序列号一致。
(2)修改老院区主库归档路径为同步模式,同时对数据进行标记,主要用于迁移后两边数据的一致性比对,确保数据无丢失。
(3)创建数据还原点,用于迁移的回退方案,防止迁移过程中出现故障造成数据丢失。
(4)Failover:在数据迁移过程中通过模拟老院区主库,即Primary数据库出现故障,调用Failover将Standby数据库转换为新的Primary数据库。
(5)重新启动数据库,然后进行业务数据验证核对。
3 问题与讨论
在历经6个月准备和3次演练后,本次数据中心整体迁移获得圆满的成功,为新院区整体业务开展提供了强有力的支持,笔者认为成功的关键因素在于以下几个方面:首先,前期做了充足准备,如项目立项、系统调研、硬件设施准备、迁移测试演练等,如果没有做好系统全功能测试、连通性测试、压力测试等,会直接影响迁移后系统使用的稳定性;其次,选对时间节点,我们选择医院业务最低峰的时段00:00-03:00,尽可能地降低对业务造成的影响;最后,现场人员指挥和操作,有完整的指挥组织架构[7],同时明确每个人的职责,关键操作人都有指定的操作工位和电脑,服务器的登录都是通过堡垒机,每一步操作都能记录,防止出现误操作以及应急情况原因核查。但是在迁移过程中我们依然发现不尽完善的地方,比如在现有的条件下为了保证医疗业务进行,防止出现数据穿透,无法对新老院区数据中心的网络切换进行模拟演练,网络切换的操作都是一次性完成的,存在较大的风险。
数据中心整体迁移,需要在前期做充足准备,特别要做好技术验证和测试,针对服务器、存储、网络等可能出现的故障都要有相应的应急处理方案。通过3次桌面演练可以把切换操作的每个步骤精确到分钟,这样业务中断时间就能控制在非常小的范围内。正式切换时选择在业务低峰期即凌晨进行,数据量本身很小,通过DG数据同步就不会花太多时间,中断时间在可接受范围之内,因此可以将对医疗业务的影响降到最小。迁移完成后,老院区旧的系统架构承载数据库的Standby Database功能,实时同步新院区主库产生的数据,这样就完成了业务系统的异地灾备建设和设备的利旧,实现机房资源的节约。
4 结 论
医院业务量的迅速发展以及监管要求的提高,对支撑业务系统IT系统容量和体系架构的要求达到一个新的高度,在此次迁移同时进行优化调整,即可满足当前业务需求,同时又需要为未来发展打下良好的基础。信息化时代,医疗业务对信息系统依赖越来越严重,医院作为一个特殊的机构,需要稳定可靠的系统,因此要求数据迁移和系统停机时间尽可能短,针对Oracle数据库的迁移,采用Oracle的DataGuard这种比较成熟的技术,在保证数据安全性的前提下,能大大缩短迁移时间,完成业务系统的灾备建设,是医院在系统升级或数据迁移中一种稳定高效的选择方案。
参考文献:
[1] 陈青,熊晓峰.基于大数据的医院数据中心建设思考 [J].科技资讯,2016,14(20):8+10.
[2] 查晓阳.论数字化医院信息系统的安全问题 [J].信息通信,2019(2):78-80.
[3] 李强.医院信息系统数据迁移设计与实现 [J].福建电脑,2016,32(9):110+121.
[4] 贾强.医院数据迁移项目风险机制探析 [J].医学信息学杂志,2013,34(8):46-48.
[5] 陈意.基于Dataguard技术的数据容灾实现方式 [A].天津市电子学会、天津市仪器仪表学会.第三十二届中国(天津)2018IT、网络、信息技术、电子、仪器仪表创新学术会议论文集 [C].天津:天津市电子学会、天津市仪器仪表学会:天津市电子学会,2018:68-70.
[6] 刘玥.基于Oracle DataGuard技术的CNMS灾备系统设计与实现 [D].成都电子科技大学,2017.
[7] 王梓名,张怡琳.数据迁移在医院多院区建设中的实践 [J].科技风,2018(31):80.
作者简介:顾学赛(1988-),男,汉族,江苏徐州人,初级工程师,本科,研究方向:数据库、医院信息管理;通讯作者:王梓名(1987-),男,汉族,四川成都人,中级工程师,硕士研究生,研究方向:云计算、医院信息管理、网络安全。