基于数据复制技术的业务同步应用
2019-01-16马英哲
马英哲
(中国电子科技集团公司第五十四研究所,河北 石家庄 050081)
0 引言
容灾备份能够为业务信息系统提供一套可靠的数据备份系统,其目的在于当主份系统遭受毁灭性灾难时,能在较短的时间内迅速代替或恢复业务信息系统,其核心技术是数据复制。目前,各类数据复制技术和方法大量应用于系统数据库的灾备研究中,文献[1-4]阐述了各类ORACLE数据库同步方法,文献[5-7]详述了MySQL数据库的同步机制,文献[8]针对阿里巴巴的OceanBase数据库论述了同步的机理,一些新兴的分布式数据库的备份也在文献[9-10]进行了说明。随着大数据时代的到来,业务系统的数据不仅保存在数据库中,业务应用的同步也不仅依赖于数据库,通过数据库的备份已经不能满足业务应用同步的需求,因此容灾备份系统的研究重点已经从简单的数据级容灾发展到业务级容灾阶段[11],需要结合业务系统的特点以及数据产生的时序,针对不同的数据类型,选择合适的复制技术和复制方式进行业务数据同步[12-13]。
面对业务同步应用需求,依据业务系统数据流程进行业务同步调度,提出了一种利用数据复制技术实现业务同步应用的方法。
1 数据复制技术
在灾备系统中,常用的数据复制技术有:基于存储设备的数据复制技术、基于数据的日常磁带备份技术和基于主机(数据库软件)的数据库复制技术。
1.1 基于存储设备的数据复制技术
基于存储设备的数据复制技术又称为智能存储系统的远程镜像,它的数据复制是在存储系统内部实现的,与主机和应用系统无关。基于存储设备的数据复制技术对数据具有较高的安全保护,但是其(不论同步方式还是异步方式)最大的缺点是远程镜像需要相应的存储设备并具有非常好的网络条件,投资很高。
基于存储设备的数据复制技术在实现方式上可分为同步和异步2种。
① 同步数据复制:主存储设备在备份存储设备返回确认信息后,才给应用系统返回确认信息。这种方式能最大程度地保持主/备机数据的一致,在灾难发生时能在最短时间内恢复业务运行。但这种方式增加了主机工作负载,要求系统能够承受同步拷贝带来的性能损失,对应用系统有明显的影响,对网络状况也有很高的要求。
优点:基本可以保证主/备机数据完全一致。
缺点:增加了主机的工作负载,要求系统能够承受同步拷贝带来的性能损失。备份系统故障同样影响应用系统。
② 异步数据复制:与同步数据复制的区别在于异步数据复制系统将数据写到主存储设备后直接返回,不需要等待主/备机的数据同步,异步数据复制的主存储设备每隔一定时间(可设置)将数据同步到备机存储设备上。
优点:网络和备份存储设备的故障不会影响主存储设备的正常工作。当主/备机房之间数据链路带宽成为瓶颈时,异步方式可以提高性能。
缺点:数据有可能丢失。在异步复制不能成功完成的情况下,数据的一致性难以得到保证。
1.2 基于数据的日常磁带备份技术
使用数据库的备份和恢复功能,可在每日日终后对主机数据库进行备份,次日将备份磁带恢复到灾难备份中心主机。考虑到数据集中后,数据的存储量较大,如果每日都将数据库的所有数据用磁带机备份下来,备份量太大,所以建议采用增量备份的方式来备份数据,减小用户的工作量。
优点:技术上易于实现。只需要一般存储设备,不需要租用光纤,投资很小。
缺点:恢复数据时间较长,往往造成短暂的业务停顿。
1.3 基于主机的数据库备份技术
基于主机的数据库复制是指把数据从主数据库服务器(主机)复制到从数据库服务器(备机),二者通过TCP/IP建立连接,数据库复制技术可以提供一种可靠、即时的备份机制。除此之外,数据库复制技术还具有一大优点,即作为备份的从服务器可用于一些只读操作,以分担主机的部分负载。
主机数据库在把逻辑日志缓冲区中的内容写往磁盘之前,先将其拷贝至数据复制缓冲区(数据复制缓冲区的大小和逻辑日志缓冲区的大小一样),然后数据复制缓冲区的内容在满足一定条件时通过TCP/IP由网络传送到从服务器一端的数据复制缓冲区中。在从服务器一端,有线程负责接收数据复制缓冲区并将其存入恢复缓冲区,另外有线程负责根据这些逻辑日志记录操作数据库,从而实现从服务器对主服务器的备份。
2 业务同步应用实现
基于数据的日常磁带备份技术显然不适合业务同步应用。
基于存储设备的数据复制技术实现业务同步的工作过程如下:
① 设计业务状态信息数据在存储设备上的存储结构;
② 采集业务状态信息,将其存放到主存储设备上;
③ 基于存储设备的数据复制技术实现主/从存储设备的业务状态信息数据一致;
④ 从应用系统从存储设备获取业务状态信息数据,完成从应用系统的业务状态同步。
基于主机的数据库备份技术实现业务同步的工作过程如下:
① 设计业务状态信息数据数据库存储结构,并在数据库系统中建设;
② 采集业务状态信息,将其存放到数据库中;
③ 基于主机的数据库备份技术实现主/从数据库的业务状态信息数据一致;
④ 从应用系统从数据库中获取业务状态信息数据,完成从应用系统的业务状态同步。
2种实现方法的性能都主要依赖于本身选择的数据恢复技术的性能。此外,当业务状态信息数据量较大时,而网络环境相同,显然以文件的方式存储到存储设备上比存储入数据库性能上要优一些;但基于存储设备的数据复制技术采用同步复制方式时,增加系统处理和传输压力,也会出现性能瓶颈,而异步复制方式数据一致性会有所损失。故业务同步应用对业务状态信息进行分类与分析,根据业务状态信息的数据量确定数据恢复技术的基本原则如下:
① 数据量大的关键信息采用同步复制方式的基于存储设备的数据复制技术;
② 数据量大的非重要信息可采用异步复制方式的基于存储设备的数据复制技术;
③ 数据量少的或非常关键的信息采用基于主机的数据库备份技术。
3 业务同步应用实现
3.1 业务同步运行过程
某业务信息系统已具备主份业务中心和备份业务中心。完成两业务中心的业务同步,根本是要完成两中心间数据的同步。该信息系统需要同步的主要数据包括:运行步骤、运行程序、中间文件、产品文件、属性和参数文件列表等。中间文件、产品文件和参数文件(二进制、XML和文本等多种格式)较大,采用异步方式的基于存储设备的数据复制技术。运行步骤、运行程序和属性等运行状态信息数据量不大,且非常重要,采用基于主机的数据库备份技术。故系统综合使用2种技术进行方案设计,总体架构采用C/S结构,数据同步服务端部署业务同步应用服务。信息采集、信息存储客户端、信息恢复客户端同时部署在主备两业务中心,信息系统正常运行时,各类业务数据从主份业务中心同步至备份业务中心,当主份业务中心故障后,启动备份业务中心接续业务运行,同时主备业务中心备份功能互换,由备份业务中心负责数据的采集与存储,在主份业务中心故障修复后,完成备份业务中心向主份业务中心的数据同步,并择机在主份业务中心进行数据恢复,使两业务中心职能恢复正常。业务同步工作过程如图1所示。
图1 业务同步工作流程
3.2 业务同步应用设计
Time Navigator软件兼容各类数据复制技术,通过业务系统与Time Navigator之间进行控制信息交互,完成对各类业务数据同步与恢复的控制。业务同步应用服务采用Time Navigator Server进行管理,业务数据通过业务系统完成数据文件的组织与存储,信息存储客户端、信息恢复客户端部署调度控制器、调度代理以及Time Navigator Client完成在2种工作模式下数据的复制,Time Navigator Client辅助Server进行信息采集,根据业务信息系统主备工作模式以及业务数据不同的备份方式,通过调度控制器向各调度代理发送控制指令[14],调度代理通过调用控制台命令[15]与Time Navigator Server进行交互,设置各系统备份工作模式和各业务数据的复制方式和策略,并获取相应的执行结果进行过程监视。具体设计架构如图2所示。
图2 设计架构
3.3 业务同步系统实现
调度控制器通过TCP消息将控制指令发送给调度代理,消息分为2种:执行命令参数和控制台脚本参数。调度代理收到消息后根据不同的消息类型,调用相应的控制台程序执行。具体处理步骤如图3所示。
图3 调度代理工作活动流程
由图3可知,整个业务同步应用实现的核心在于调度代理如何完成业务同步逻辑到业务数据复制的转换。以业务数据文件的复制为例,需要完成以下主要配置工作:主从服务器配置、双向同步应用配置、同步策略配置和数据同步监控。具体配置如下:
(1) 编写配置脚本NewApp.tsh
① 声明变量
variable handleMyHost NULL_HANDLE
variable handleMyDestinationHost NULL_HANDLE
variable handleMyNewApplication NULL_HANDLE
variable handleMyNewReplication NULL_HANDLE
variable handleMyNewStrategy NULL_HANDLE
variable handleMyNewBackup NULL_HANDLE
② 完成主备业务中心文件存储服务器配置
as HostName test2
as HostType 64
create HostMyHost
as HostName test3
as HostType 64
create HostMyDestinationHost
③ 完成主份业务中心文件复制应用程序配置
as ApplicationHost MyHost
as ApplicationName test2.fs
as ApplicationType 3
as ApplicationEnable 1
as ApplicationOwner test2Administrator
as ApplicationOwnerPassword Windows2000
variablestringlist str_Env
TINA_FS_ROOT_DIR=c:MyDocument
as ApplicationEnvironment str_Env
erase str_Env
create ApplicationMyNewApplication
④ 完成备份业务中心文件存储应用程序配置
as ApplicationParentApp MyNewApplication
as ApplicationName test2.fs.rep
as ApplicationType 3
as ApplicationEnable 1
as ApplicationOwner test3Administrator
as ApplicationOwnerPassword Windows2000
variablestringlist str_Env
TINA_FS_ROOT_DIR=c:YourDocument
as ApplicationEnvironment str_Env
erasestr_Env
as ApplicationHost MyDestinationHost
create ApplicationMyNewReplication
⑤ 完成文件复制策略配置
variable handleMyHostGroup NULL_HANDLE
as ApplicationHostGroup &MyHostGroup
get MyNewApplication
as StrategyName 1
as StrategyType 3
as StrategyReplicaDestApp MyNewReplication
as StrategyHostGroup MyHostGroup
as StrategyReplicaKeepInst 1
create StrategyMyNewStrategy
⑥ 完成文件复制应用
as BackupClassPath /
as BackupClassHostGroup MyHostGroup
as BackupClassStrategyName 1
create BackupClass MyNewBackup
⑦ 执行脚本
tina_shell -catalog tina_test1-file c:NewApp.tsh
(2) 启动复制作业
tina_start_backup application test21.fsstrat A incr sync v_jobid catalog test1_tina identity admin:
(3) 获取执行结果
tina_acct -host test1-volume_unit kilo-start_date 201010100000 -output_format xml -file c:export.xml -catalog test1_tina -identity admin:
配置完成后,系统在日常运行过程中根据备份策略自动完成文件和数据库的增量和全部备份。
该系统的RPO指标为10 min,RTO指标为2 h。经过对该业务系统的数据分析,日常运行每日新增文件数据量约20 GB,包括500 MB的XML文件和19.5 GB的图像文件。每日数据增长有2次峰值,每次持续30 min。数据库日志增长率平均每日400 MB左右。因此,为满足RPO=10 min的指标,自动增量备份策略设定为5 min。根据千兆局域网数据传输效率和速率分析,每5 min可完成7.5 GB数据备份,能够满足业务系统数据备份的数据量要求。该业务系统为软件系统,业务系统的恢复包括数据库恢复、软件的启动和新增数据的加载3个步骤。时间占用率较多是数据库恢复,由于系统长期运行备份,在恢复数据库时需要对大量数据库数据进行恢复,可能会造成恢复时间巨大,影响业务系统业务恢复,因此可采用每周定期恢复部分的策略,每次数据库恢复时间在30 min以内,保证RTO指标的完成。
4 结束语
通过对各类数据复制技术优缺点的分析,结合业务系统业务同步需求,制定出业务系统的业务同步工作流程,并据此设计业务同步应用的架构,实现了调度控制策略与业务应用的有机结合,提高了数据复制的实时性,并支持主备系统之间的往复切换,提高了业务系统的健壮性。使用Time Navigator软件作为业务系统与业务同步系统之间交互的桥梁,充分利用了Time Navigator支持面广、高性能且稳定等特点,提高了系统运行的稳定性。应用表明,系统
设计达到了应用级灾备等级,可支持长期稳定可靠运行。