一种双活系统间动态数据同步的方法

文档序号:7675778阅读:178来源:国知局
专利名称:一种双活系统间动态数据同步的方法
技术领域
本发明一般地涉及数据灾备,并且更具体地涉及双活的主用与备用系统之间的动态数据同步。
背景技术
数据灾备全称为数据灾难备份,是指为防止出现操作失误或系统故障导致数据丢失,而将全系统或部分数据集合,从应用主机的硬盘或阵列复制到其他存储介质的过程。实施灾难备份的目的是确保重要信息系统的数据安全和关键业务可以持续服务,提高抵御灾难的能力,减少灾难造成的损失。灾难备份系统是整个信息系统的有机组成部分,而不是游离于生产系统之外的一个独立系统。数据灾备服务起源于二十世纪七十年代,目前在发达国家已成为信息工业中增长最快的行业之一。在政府、金融、电信、交通、能源、公共服务业及大型制造/零售业等信息化依存程度高的行业,灾备应用极其广泛。
银行业是应用信息科技最广泛的行业之一。随着银行信息化建设的快速发展,银行信息系统大多采用了数据集中存放、集中处理的大集中模式,这种集中模式在带来巨大好处的同时也存在着许多风险,其中一个方面就是多点的分散风险汇集成了数据中心一点的集中风险,一旦中心端出现技术故障(例如硬件故障、人为操作失误和病毒侵袭所造成的破坏),其后果将是灾难性的。因此,数据的高可靠存储,灾难发生的预防,充分考虑灾难发生后果的快速恢复手段,成为银行信息安全工作中极为重要的一环。一般而言,为进行数据灾备,会对处于核心地位的系统采用1+1备份或N+1备份。一旦主用系统发生故障时,备用系统能很快地接管主用系统的工作,使整个工作环境保持正常。其中,主用系统和备用系统可以是在正常情况下功能相同并且相互独立操作的两个系统,也被称为主备双活系统。在这样的主备双活系统中,通常将涉及较多的动态数据以及配置数据等操作,要使主用与备用系统之间的切换不影响整个工作环境的正常运行,其中一个关键的问题就是同时处于活动状态的主用与备用系统之间的数据同步。当主用系统出现问题无法胜任工作时,备用系统能够及时完全代替主用系统进行工作,以提高系统的可靠性。在目前的灾备系统结构中,主用系统或备用系统本身常常通过轮询的方式从系统中的各单元获取源数据更新的信息,例如通过轮询来检查与各单元数据对应的时间是否发生变化。这种方式的缺点在于,更新始终有滞后性,特别是在有大量动态数据的情况下,轮询将花费更多的时间并且会影响相应单元的操作。因此,对用于在主备双活系统之间执行双向数据同步的改进方法有很大的需求。

发明内容
本发明的目标是提供促进主备双活系统之间的动态双向数据同步的方法,该方法使得联机系统动态数据同步进程对主用、备用系统的影响最小。为了实现上述目标,本发明提供了一种用于在主备双活系统中实现动态数据同步的方法,所述主备双活系统包括主用系统和备用系统,并且所述主用系统和备用系统可以互为源端和目的端。所述方法包括以下步骤所述源端根据本地的数据同步请求将需同步的数据以及相应的信息打包为同步数据包;所述源端根据预定的通信方式将所述同步数据包传送到所述目的端;以及所述目的端对所收到的同步数据包进行解包,并且根据所述信息进行数据更新操作,其中所述本地的数据同步请求是来自所述主用系统或备用系统的接入节点的、引起数据变化的操作请求。在一些实施例中,所述数据同步请求包括POS终端签到请求以及POS终端批结算请求。优选地,所述信息包括所述需同步的数据的数据类型和与所述数据类型对应的操作类型。在一些实施例中,所述方法还包括根据所述数据同步请求确定所述数据类型。在一些实施例中,所述目的端根据通过解包得到的数据类型和操作类型对所述需同步的数据进行更新操作。在一些实施例中,所述更新操作既包括将所述需同步的数据更新至所述目的端的数据库的操作,也包括将所述需同步的数据更新至共享内存的操作。优选地,所述信息包括所述需同步的数据在本地更新的时间戳信息。在一些实施例中,所述目的端在进行数据更新之前,将本地当前数据的更新时间与通过解包得到的时 间戳进行比较,并且只有在所述需同步的数据比所述本地当前数据更新时,所述目的端才执行所述数据更新操作。在一些实施例中,如果所述主用设备和所述备用设备都在本地,则所述预定的通信方式可以为消息队列方式;如果所述主用设备和所述备用设备在异地,则所述预定的通信方式可以为网络通信方式。优选地,所述方法还包括所述源端在无法向所述目的端传送所述同步数据包的情况下根据触发条件重新批量传送所述同步数据包。本发明提供了一种主备双活系统中的动态数据同步方法,其不同于通过轮询数据库文件来获取源数据更新信息的方式,而是采用了触发式数据同步机制,即主用或备用系统根据来自其接入节点的、引起数据变化的操作请求来启动同步进程,由此可以大大提高同步的实时性。进一步地,本发明还通过传送操作类型信息而大大降低了需要传输的数据量,从而提高了同步效率。本发明所提供的方法对主用系统和备用系统两者的影响都较小,并且可以提高数据传输的灵活性。下面将结合具体的实施例来描述本发明的方法。


本发明的前述和其他目标、特征和优点根据下面对本发明的实施例的更具体的说明将是显而易见的,这些实施例在附图中被示意。图I是根据本发明的方法的第一实施例的示意图;图2是根据本发明的方法的第二实施例的示意图;图3是本发明所适用的一种主备双活系统的示意图。
具体实施例方式以下结合附图和具体实施方式
进一步详细说明本发明。需要说明的是,附图中的各结构只是示意性说明,用以使本领域普通技术人员最佳地理解本发明的原理,其不一定按比例绘制。为了便于理解,在本文中使用了术语“主用系统”和“备用系统”,但应理解的是本发明所提供的方法可适用于任意两个具有本发明所描述特征的系统之间的动态数据同步。另外,在下文中将以银行系统应用为背景描述本发明所提供的方法,但应理解的是所述方法可应用于任何需要主备双活系统来对数据进行灾备的情形。图I是根据本发明的方法的第一实施例的示意图。在该图中仅示出了以主用系统为源端,备用系统为目的端的操作流程。但应理解的是,本发明的方法适用于主用系统和备用系统互为备份的情况,因此在实践中也可能由备用系统执行源端的操作,而由主用系统执行目的端的操作,或者双方各自同时作为源端和目的端来操作。举例来说,所述主用和备用系统可以是银行的POS中心系统,该系统与多个POS终端相连,用于接受、处理或转发POS终端的交易请求信息,并向POS终端回送交易结果信息。多个POS终端可以同时与主用POS中心和备用POS中心相连,而其中一部分POS终端的业务由主用POS中心处理,其余的POS终端的业务则由备用POS中心处理,这些POS终端可以被认为是接入主用或备用系统的节点。在主用和备用POS中心之间需要不断地进行数据同步,使得在其中一个系统出现故障 时,其所负责的POS终端的业务可以由另一系统接手。如图I所示,在正常操作的情况下,每次同步过程是由一方系统内的数据同步请求启动的。根据本发明所提供的方法,所述数据同步请求是来自所述主用系统或备用系统的接入节点的、引起数据变化的操作请求。以POS中心系统为例,每次POS终端需要进行交易时,其将向POS中心发送签到请求。POS签到采用联机方式,其中POS终端将向POS中心上送终端号、商户号、操作员代码。POS中心在验证商户和终端的有效性之后,将产生终端工作密钥、提取交易批次号、POS中心的交易日期和时间,将这些数据下传到POS终端。签到交易有以下三个作用a)终端与POS中心主机的批次号同步。b)终端从POS中心主机获取新的终端工作密钥。C)终端从POS中心主机获取主机的日期和时间。显而易见,在这种信息交互过程中,有新的数据产生。因此,POS中心系统将把签到请求看作是数据同步请求来启动相应的同步处理。在图I所示的实施例中,主用系统在开始向备用系统同步数据之后将首先根据其收到的数据同步请求确定所需同步的数据的数据类型。在实践中,数据同步请求与数据类型之间的对应关系可以根据主备系统的业务功能被预先确定。以上述POS签到请求为例,与该请求对应的数据类型可以是“终端工作密钥”。另外,在该实施例中,还可以预先确定与所述数据类型相对应的操作类型,该操作类型可以被用于指示备用系统如何处理所收到的数据。常规地,主备系统之间的同步仅涉及将数据从一个系统的数据库更新到另一系统的数据库,从而导致在通信链路上有时存在过量数据,使得传输可靠性下降。在加入操作类型的情况下,主用系统将不再需要把所有区别数据都传给备用系统。相反地,它可以仅传送一部分数据和与这部分数据对应的操作,而备用数据通过对这部分数据进行相应操作而使得目的端的数据整体上发生与源端相同的变化。举例来说,对于签到请求,主用系统可以将数据类型确定为“终端工作密钥”,并且将操作类型确定为“签到信息同步更新”。另外,POS终端也会向POS中心系统发送批结算请求。POS批结算时,终端将当批次交易的借记总金额、借记总笔数、贷记总金额、贷记总笔数上送POS中心。批结算完成,即对账平或批上送全部完成后,清空交易记录,批次号加1,形成新的批次号。对于批结算处理,其本身会在主用系统上产生多种更新操作,主用系统可以首先将数据类型确定为“批结算信息”,再根据具体情况定义与该次批结算处理有关的更新操作。主用系统可以与前述签到请求的情况相似地将操作类型定义为“批结算信息同步更新”。在确定所需要的数据及相应信息之后,主用系统将这些内容一起打包成同步数据包,该同步数据包的格式可以取决于主用系统与备用系统之间所采用的通信方式。优选地,主用系统可以在同步数据包中加入所需同步的数据在本地更新的时间戳信息。制作完成的数据包将按照预定的通信方式被传送到备用系统。举例来说,当主备系统为一个机房中互为备份的两个POS中心系统时,它们之间可以采用消息队列通信机制。当主备系统为处于异地的两个系统时,则可以采用网络通信。应理解的是,现有技术中常见的通信方式都可以被在主备双活系统之间。备用系统在收到上述同步数据包之后将首先相应地进行解包操作,由此获得时间戳、数据类型、操作类型等信息。在使用时间戳的情况下,备用系统会将本地当前数据的更 新时间与通过解包得到的时间戳进行比较,并且只有在所述需同步的数据比所述本地当前数据更新的情况下,其才执行数据更新操作。这种方式可以避免因通讯传输可能引起的数据发送次序与到达次序不一致而造成的数据更新结果不一致的问题。例如,在主用系统处可能由于POS终端应答出错而两次产生密钥,涉及在后的有效密钥更新可能首先到达备用系统,而在前的无效密钥更新后到达。备用系统可以根据时间戳来判断不需要执行后到达的这个更新操作,由此确保当前数据块始终处于最新状态。随后,备用系统将按照数据类型和操作类型信息执行在其本地的数据更新操作。例如,在数据类型为“终端工作密钥”并且操作类型为“签到信息同步更新”的情况下,备用系统将把新的终端工作密钥数据存储到其数据库中相应的位置。在实际应用中,所述终端工作密钥一般仅被存储在数据库中,因此在上述情况下仅需将数据更新到数据库。对于例如机构重置密钥交易,还存在对机构密钥的同步更新,而这样的机构密钥通常既存储在数据库中也存储在共享内存中。因此,对于机构密钥同步,备用系统上收到数据同步请求后,要同时更新数据库和共享内存。在数据类型为“批结算信息”并且操作类型为“批结算信息同步更新”的情况下,备用系统会对其数据库中多个涉及“批次号”的表进行更新。这与上述终端工作密钥更新有所不同,一般情况下前者在备用系统只需要更新一个密钥表。另外,备用系统在处理“签到信息同步更新”时,若该签到的终端为新增终端,则备用系统也会同时进行相应的“批结算信息同步更新”操作,即在批结算信息表中为该新增终端构造批结算信息结构。在上述实施例中,主用或备用系统根据其接入节点的引起数据变化的操作请求触发同步进程,使得数据可以更及时地被同步,从而提高灾备的可靠性。传送操作类型信息使主备系统间通信链路的负荷得以降低,而时间戳机制又避免了“脏数据”的写入。由此可见,本发明所提供的方法使得联机系统动态数据同步进程对主用、备用系统的影响变小,从而大大促进了主备双活系统之间的动态双向数据同步。图2是根据本发明的方法的第二实施例的示意图,该实施例适用于主备系统之间发生通信中断或者其中一方故障恢复后的回切场景。与图I相似,在该图中示出了以主用系统为源端,备用系统为目的端的操作流程,但在实践中也可能由备用系统执行源端的操作,而由主用系统执行目的端的操作,或者双方各自同时作为源端和目的端来操作。与第一实施例不同的是,在该实施例中,由于主用系统不能实时地与备用系统通信,其并不是响应于接入节点的操作请求马上发起单独的数据同步,而是在得到同步数据包之后对其进行存储,等待通信恢复的触发条件发起批量同步,即将多个同步数据包一起传送给备用系统。在同步数据包中,仍然存有数据类型、操作类型以及时间戳等信息,整个操作过程大体上与图I所示的例子相同。在进行批量追补同步时,可以根据指定的时间范围来确定需要传送的数据包。由于这种批量传送机制,使得根据本发明的方法一方面具有很好的实时性,另一方面也能理想地应对系统间的通信中断。图3是本发明所适用的一种主备双活系统的示意图。在图3所示的场景中,系统A和系统B互为备份,并且在运行时分别独立处理业务请求。同时,这两个系统分别在本地有一个内部灾备同步模块。接收模块I对应系统对本地主数据源的更新,接收模块2对应系统对本地备数据源的更新。系统A在对备数据源进行更新的同时,还将更新信息通过通讯网关a发送至异地系统B中。系统B收到数据同步请求时,在接收模块I、接收模块2处将新数据信息分别更新至其主数据源和备数据源中。在系统A或系统B对其内部的备数据 源进行更新以及系统A与系统B之间的更新均可以采用本发明所提供的方法。本文所描述的系统间动态数据同步的技术方案可以被实现为软件、固件、硬件或其任何组合。例如,其可以是在硬件逻辑(诸如集成电路芯片、可编程门阵列、专用集成电路等)、计算机可读介质(诸如硬盘驱动器、软盘、磁带、CD-ROM、光盘等)或者易失性和非易失性存储设备(诸如EEPROM、ROM、PROM、RAM、DRAM、SRAM等)中实现的代码或逻辑。计算机可读介质中的代码可以由处理器访问和执行。此外,本文所描述的方法的步骤可以按顺序执行或者其中某些步骤可以并行地被执行,所述方法可以由单个处理器完成或者由分布式处理系统来完成。应当说明的是,以上具体实施方式
仅用以说明本发明的技术方案而非对其进行限制。尽管参照上述具体实施方式
对本发明进行了详细的说明,本领域的普通技术人员应当理解,依然可以对本发明的具体实施方式
进行修改或对部分技术特征进行等同替换而不脱离本发明的实质,其均涵盖在本发明请求保护的范围中。
权利要求
1.一种用于在主备双活系统中实现动态数据同步的方法,所述主备双活系统包括主用系统和备用系统,并且所述主用系统和备用系统可以互为源端和目的端,其特征在于,所述方法包括以下步骤 所述源端根据本地的数据同步请求将需同步的数据以及相应的信息打包为同步数据包; 所述源端根据预定的通信方式将所述同步数据包传送到所述目的端;以及 所述目的端对所收到的同步数据包进行解包,并且根据所述信息进行数据更新操作,其中 所述本地的数据同步请求是来自所述主用系统或备用系统的接入节点的、引起数据变化的操作请求。
2.如权利要求I所述的方法,其特征在于,其中所述信息包括所述需同步的数据的数据类型和与所述数据类型对应的操作类型。
3.如权利要求2所述的方法,其特征在于,所述方法还包括根据所述数据同步请求确定所述数据类型。
4.如权利要求2所述的方法,其特征在于,其中所述目的端根据通过解包得到的数据类型和操作类型对所述需同步的数据进行所述数据更新操作。
5.如权利要求4所述的方法,其特征在于,其中所述更新操作既包括将所述需同步的数据更新至所述目的端的数据库的操作,也包括将所述需同步的数据更新至共享内存的操作。
6.如权利要求I所述的方法,其特征在于,其中所述信息包括所述需同步的数据在本地更新的时间戳信息。
7.如权利要求6所述的方法,其特征在于,其中所述目的端在进行数据更新之前,将本地当前数据的更新时间与通过解包得到的时间戳进行比较,并且其中 只有在所述需同步的数据比所述本地当前数据更新时,所述目的端才执行更新操作。
8.如权利要求I所述的方法,其特征在于,其中如果所述主用设备和所述备用设备都在本地,则所述预定的通信方式为消息队列方式;如果所述主用设备和所述备用设备在异地,则所述预定的通信方式为网络通信方式。
9.如权利要求I所述的方法,其特征在于,其中所述数据同步请求包括POS终端签到请求以及POS终端批结算请求。
10.如权利要求1-9中任意一项所述的方法,其特征在于,所述方法还包括所述源端在无法向所述目的端传送所述同步数据包的情况下根据触发条件重新批量传送所述同步数据包。
全文摘要
本发明提供了一种用于在主备双活系统中实现动态数据同步的方法。所述主备双活系统包括主用系统和备用系统,并且所述主用系统和备用系统可以互为源端和目的端。所述方法包括以下步骤所述源端根据本地的数据同步请求将需同步的数据以及相应的信息打包为同步数据包;所述源端根据预定的通信方式将所述同步数据包传送到所述目的端;以及所述目的端对所收到的同步数据包进行解包,并且根据所述信息进行数据更新操作,其中所述本地的数据同步请求是来自所述主用系统或备用系统的接入节点的、引起数据变化的操作请求。该方法在进行数据同步时,对主用、备用系统的影响较小,适用于主备双活系统中的动态数据同步应用的场景。
文档编号H04L12/24GK102801543SQ20111013578
公开日2012年11月28日 申请日期2011年5月24日 优先权日2011年5月24日
发明者刘宾, 冀乃庚, 李筑埭, 葛国栋 申请人:中国银联股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1