基于Oracle的在线式应用容灾系统的建立

2012-11-16 01:41马锡坤
中国医疗设备 2012年2期
关键词:容灾日志信息系统

马锡坤

南京军区南京总医院 信息科,江苏南京 210002

基于Oracle的在线式应用容灾系统的建立

马锡坤

南京军区南京总医院 信息科,江苏南京 210002

本文介绍了DSG Real Sync软件的特点及工作原理;详细阐述了采用DSG RealSync软件构建我院在线式应用容灾系统的全过程。

“军字一号”;在线式应用容灾系统;应用容灾;数据容灾

长期以来,国内大部分医院信息系统(HIS)并没有建成有效的容灾机制,只要数据库出现问题,就必然导致非常严重的后果。也有些医院采用了相应的备份系统,但仅仅通过备份方式无从保证业务运行的连续性[1],当服务器真正宕掉的时侯,就会造成业务中断,影响医院的正常工作。因此,HIS有必要建立一套能保障业务连续运行的容灾系统[2-3]。

1 在线式应用容灾方案

应用容灾系统是在数据容灾的基础上,在异地建立一套完整的与本地生产系统相当的备份应用系统,在灾难情况下,远程系统迅速接管业务运行。数据容灾是抗御灾难的保障,而应用容灾则是容灾系统建设的目标。“军字一号”系统和门急诊信息系统是我院主要的业务系统,系统后台采用的是Oracle数据库。在充分调研论证的基础上,我们采用DSG RealSync软件实现数据的异构实时复制,把位于外科楼网络中心机房主设备上的Oracle数据实时复制到门诊机房的备用设备,如果主设备不可用时,“军字一号”系统和门急诊系统切换到备用设备,确保了“军字一号”系统和门急诊信息系统不间断运行,实现应用系统容灾[4]。

DSG RealSync通过交易复制的方式,将生产数据库的全部数据或者部分表实时复制到目标系统上。安装在源系统运行数据库实例服务器上的模块包括:日志分析模块、交易合成模块、数据传输(输出端)模块、用于从已有的表中批量导出数据的模块(用于系统初始化);安装在复制目标系统运行数据库实例服务器上的模块包括:数据传输(输入端)模块、交易合成模块、用于从已有的表中导出数据的批量装载的模块(用于系统初始化)。DSG RealSync对日志进行分析,得到交易信息再进行传送。由RealSync构建的容灾系统是可验证的方案,是在线式应用容灾,目标端数据库是在线打开的,从而保证了容灾系统的可用性[5]。

2 DSG RealSync的工作原理

2.1 数据库复制过程

DSG RealSync采用的数据库复制技术与传统的数据复制技术不同,DSG RealSync技术是针对数据库提供了基于逻辑的交易复制方式。该方式通过直接捕获源数据库的交易,将数据库的改变逻辑复制到目标系统数据库中,实现源系统和目标系统数据的一致性。其工作原理,见图1。

DSG RealSync在源端和目标端分别安装代理进程,源端的代理进程对Oracle日志进行监控,发现源数据改变可及时对目标数据库进行更新。当应用系统在源端向数据库进行任何操作时,这些信息都将在重做日志中保存,RealSync代理通过对实时获取的日志进行分析,获得本次操作的交易指令和交易数据,然后将这些交易指令和交易数据经过格式转化生成DXF数据格式,并实时通过网络传送到目标系统。目标系统的RealSync代理接收数据库包,经过校验码检查,确认正确的数据库包后,调用Oracle函数按照交易的先后顺序在目标系统中执行该交易。其中,DXF(DSG Extend Format)格式是DSG公司的专有技术,该技术是DSG公司用来表达SQL指令的方式,该数据格式能够通过DSG的专有转换算法直接转换为Oracle的内部数据表达格式,但在分析和转载时需要最小的转化,以提高分析和装载速度,减少资源占用、丰富能够表达的各种数据类型。

图1 DSG RealSync数据库复制技术工作原理

2.2 数据的一致性和完整性

DSG RealSync在数据的一致性和完整性方面的保证主要通过以下几个方面实现:

(1)保证交易的先后顺序。严格按照源端交易执行顺序在目标端加载,严格的I/O顺序是保证系统逻辑正确的关键因素,RealSync通过对交易的SCN进行判断,并严格保证源系统上先提交的交易在目标端也是先装载。

(2)检查日志跟踪的连续性。RealSync在每次日志读取结束时,都将记录当前读取的日志的Sequence No,Block No和最后读取的Offset。当下次读取文件时,总是需要检查是否和上次读取的位置严格连续,从而保证对日志分析的完整性。

(3)数据的一致性检查。RealSync提供数据一致性检查工具,用来比较源端的记录和目标端的记录是否完全一致。如果出现数据不一致,RealSync将对不一致的部分进行修复。

2.3 DSG RealSync特点

(1)对生产系统的低干扰性。DSG RealSync实时数据复制技术不需要通过任何数据库的引擎来获取变更数据,而是通过数据库自身的信息获取源系统上的改变并传送给目标系统,不会对生产系统造成性能影响。

(2)系统异构,可提供更多的优化空间。源数据库系统和目标数据库系统的可异构,主要包括索引规则和存储参数(数据块大小、回滚段等)。因此,可以在目标数据库上根据业务特点进行调整和优化,完全不受源系统的限制。

(3)支持的多种复制策略。DSG RealSync可以被灵活配置,以支持各种复制策略,支持各种增值应用,如一对一单向复制;一对多复制;多对一复制等,支持实时复制、定时复制、手工复制等多种同步模式,并可按需复制。RealSync是基于TCP/IP的复制系统,借助现有的网络技术,对距离没有限制。

3 实现在线式应用容灾系统的关键技术

3.1 日志抓取

RealSync对数据的抓取是通过安装在源数据端的代理模块,定时分析Oracle重做日志来获取源端的交易类型及数据的。RealSync代理在判断源端的Oracle系统是否有新的交易产生时是通过定期检查Oracle控制文件中记录的当前SCN来判断的,这样就避免了每次检查都通过读取日志文件来判断是否有新的交易产生造成的系统影响。在控制文件中确认有新的交易产生时,可以同时获得当前的重做日志组,以及最新日志在日志文件的最新位置。RealSync 代理模块根据这些信息将上次抓取时记录的日志位置与本次读取的最新位置之间的日志读取并加以分析。然后将这些数据保存在在线日志缓存文件中,等待下一步作交易合成处理。

3.2 日志分析

Oracle数据库的所有更改都记录在日志中,其中记录了对数据库中的每一个变化。当我们需要了解数据库中所作的交易时,一个最有效实用而又低成本的方法就是分析Oracle数据库的日志文件。RealSync代理集成了DSG的优秀日志分析功能,该功能完全不同于Oracle提供的Logminer日志分析工具,在性能和功能上有了很大提高,其主要体现在系统性能的优化上,大幅度提高了日志分析的速度,使得对于高并发业务系统的复制成为可能。RealSync通过对日志的分析,得到该数据库中的每个SQL指令,并将这些SQL指令生成DXF格式的表达方式。

3.3 交易合成

为了提高系统的可控制性、保证逻辑完整性、避免数据丢失,将复制的最小单位为一个交易,而不是单个SQL指令为复制单位,这样在目标端的交易装载更加容易控制。同时,对于复制的数据而言,只有那些提交的数据对于目标系统是有意义的,而对于那些回退的数据无需复制到目标系统上。所以RealSync在复制过程中不是复制每个SQL语句,而是对抓取的数据进行交易整合后以交易为单位进行复制,同时只复制提交的交易。交易合成模块首先按照交易序号对SOL语句进行划分,每个交易包含多条SOL语句。然后,以交易为单位进行处理,将已经提交的交易,传至传输处理模块;将未提交的交易保存在本地,一旦通过日志得知保存的未提交交易已发提交,立即将该交易发送到传输处理模块;对回退的交易作丢弃处理。

3.4 交易传输

RealSync为了保证数据传输的安全、可靠,在传输处理上作了特殊的处理与支持:数据在传输之前首先存入源端的缓存,传输进程从缓存中读取交易数据封装为TCP/IP数据包传送给目标端的输入进程。在目标端,输入进程在收到传输的交易数据包后,首先存入队列,然后由装载进程从队列中严格按照交易的顺序装载交易信息。负责传输的进程从本地队列中按照先进先出的原则抓取需要传输的交易,将交易数据封装成一个数据包后通过TCP/IP协议传递给对端系统。在封装的数据包的包头部分描述了包的大小。对应端系统在接受到传来的数据包后,首先根据包头描述的包大小进行传输的合法性检查,判断是否传输完整。

3.5 数据装载

在传统的复制技术中,常用的数据装载方式是采用Oracle 的SQL接口,通过Insert、Update、Delete等SQL语句实现数据的装载。这种方式在通用性上很好,但关键在于性能问题非常突出。SQL语句的执行需要经过parse、plan、格式转换等过程,造成大量的系统开销。尤其是Update和Delete操作的大量Where子句操作需要进行复杂的查询定位任务,从而导致装载性能低下,对处理能力的要求比生产系统的还高。DSG RealSync在装载性能上进行了大幅度的改善,使得装载端的性能和处理能力需求降至最低。DSG RealSync采用了DXF数据格式的装载和Rowid mapping的方式实现快速定位两个关键技术提高了系统的装载速度。

4 结束语

容灾不单单是备份那么简单[6-7],而是指当灾难发生时,系统可以在最短时间内、最少的损失下恢复业务的运行[8-9]。我院通过DSG RealSync软件构建的容灾系统在灾难发生时无需进行数据恢复,保障了系统运行的可靠性、连续性。通过数据实时复制,保障了业务数据不丢失。而且主备硬件无需一致,减少了投入成本。在源系统发生灾难时,源端和目标端停止复制进程,在目标端执行切换脚本即可快速切换系统。当源端修复完成可以正常使用时,只需在反向同步环境中发起一个全同步操作,然后完成整个反向回切过程即可切换到源系统。经过实践验证,我院构建的应用容灾系统是切实可行的,并且在排除小型机故障和Oracle问题时发挥了极大的作用。

[1] 赵春晓.医院信息系统中的数据安全[J].医疗装备,2010,23(2): 31-32.

[2] 翁锦阳,何萍,朱铁兵.大型医院信息系统的容灾设计和应用[J].中国医疗设备,2011,21(1):59-60.

[3] 翁盛鑫,黄影,庄严.信息系统容灾技术的应用设计与比较[J].医疗卫生装备,2010, 31(4):45-46.

[4] 马锡坤,杨国斌,袁波.构筑信息网络基础平台 保障人财物科学管理[J].中国数字医学,2010,5(8):20-22.

[5] 汪瑶,顾慧,任凯,等.医院数据容灾系统建设及相关探讨[J].江苏卫生事业管理,2010,21(6):100-101.

[6] 罗绯,李明,张安仁,等.医院信息系统备份策略[J].西南国防医药,2010,20(11):1254-1255.

[7] 王宏伟.关于医院信息系统容灾与数据备份的思考[J].中国医学教育技术,2009,23(2):181-183.

[8] 陈娴.浅谈医院容灾系统的设计[J].中国医疗前沿,2009,4(9): 125-126.

[9] 黄志中,王占明.医院信息系统容灾技术浅谈[J].医疗卫生装备,2009,30(6):48-50.

Construction of Application Disaster Tolerance System Based on Oracle Online

MA Xi-kun
Information Department, Nanjing General Hospital of Nanjing Military Command, Nanjing Jiangsu 210002, China

This paper introduces the characteristic and the principle of the DSG Real Sync software and the hole progress of application in disaster tolerance system online with it.

No 1 military project; online application disaster tolerance system; application disaster tolerance; data disaster tolerance

TP393.08

A

10.3969/j.issn.1674-1633.2012.02.010

1674-1633(2012)02-0038-03

2011-07-07

本文作者:马锡坤,硕士研究生,高级工程师。

作者邮箱:maxikun@163.com

猜你喜欢
容灾日志信息系统
企业信息系统安全防护
一名老党员的工作日志
扶贫日志
高速公路收费中心容灾备份系统建设方案分析
雅皮的心情日志
雅皮的心情日志
基于区块链的通航维护信息系统研究
信息系统审计中计算机审计的应用
关于建筑企业容灾备份系统方案的探讨
基于数据容灾技术在企业信息系统中的应用研究