一种数据同步方法及系统与流程

文档序号:12477558阅读:301来源:国知局
一种数据同步方法及系统与流程

本发明涉及通信领域,尤其涉及一种数据同步方法及系统。



背景技术:

银行业是应用信息科技最广泛的行业之一。随着银行信息化建设的快速发展,银行信息系统大多采用了数据集中存放、集中处理的大集中模式,这种集中模式在带来巨大好处的同时也存在着许多风险,其中一个方面就是多点的分散风险汇集成了数据中心一点的集中风险,一旦中心端出现技术故障(例如硬件故障、人为操作失误和病毒侵袭所造成的破坏),其后果将是灾难性的。因此,数据的高可靠存储,灾难发生的预防,充分考虑灾难发生后果的快速恢复手段,成为银行信息安全工作中极为重要的一环。

一般而言,为进行数据灾备,会对处于核心地位的系统采用1+1备份或N+1备份。一旦主用系统发生故障时,备用系统能很快地接管主用系统的工作,使整个工作环境保持正常。其中,主用系统和备用系统可以是在正常情况下功能相同并且相互独立操作的两个系统,也被称为主备双活系统。在这样的主备双活系统中,通常将涉及较多的动态数据以及配置数据等操作,要使主用与备用系统之间的切换不影响整个工作环境的正常运行,其中一个关键的问题就是同时处于活动状态的主用与备用系统之间的数据同步。当主用系统出现问题无法胜任工作时,备用系统能够及时完全代替主用系统进行工作,以提高系统的可靠性。

在目前的灾备系统结构中,主用系统或备用系统本身常常通过轮询的方式获取发生了更新的源数据,例如备用系统通过轮询来检查主用系统源数据表中的数据的时间戳是否发生变化。这种方式的缺点在于备用系统数据更新始终有滞后性,特别是在主用系统中有大量动态数据的情况下,因为对主用系统源数据表每进行一遍轮询都将花费很多的时间,因此导致主用系统或备用系统之间不能够保证同步的实时性。



技术实现要素:

本发明实施例提供一种数据同步方法,用以解决现有的灾备系统结构中主备系统数据同步方法不能够保证实时性的问题。

本发明方法包括一种数据同步方法,该方法包括:目的端向源端发送数据同步请求,所述数据同步请求包含待同步数据的日志分组标识;

所述目的端接收所述源端发送的所述日志分组标识的N条日志信息,每条日志信息至少包括待同步数据的标识和待同步数据在源端的第一时间戳,N为正整数;

所述目的端按照如下方式并行处理所述日志分组标识的N条日志信息:

针对每条日志信息,根据所述日志信息中的待同步数据的标识,确定与所述标识对应的目的端数据的第二时间戳;若所述第一时间戳晚于所述第二时间戳,则从所述源端获取与所述标识对应的源端数据以更新所述目的端数据。

基于同样的发明构思,本发明实施例进一步地提供一种数据同步系统,该系统包括源端和目的端,所述目的端包括:发送单元,用于向源端发送数据同步请求,所述数据同步请求包含待同步数据的日志分组标识;

接收单元,用于接收所述源端发送的所述日志分组标识的N条日志信息,每条日志信息至少包括待同步数据的标识和待同步数据在源端的第一时间戳,N为正整数;

处理单元,用于按照如下方式并行处理所述日志分组标识的N条日志信息:针对每条日志信息,根据所述日志信息中的待同步数据的标识,确定与所述标识对应的目的端数据的第二时间戳;若所述第一时间戳晚于所述第二时间戳,则从所述源端获取与所述标识对应的源端数据以更新所述目的端数据。

本发明实施例提供的数据同步方法,目的端每次向源端发送的数据同步请求中均携带日志信息所属的日志分组标识,源端会将该日志分组标识中的日志信息发送给目的端,然后目的端可以并行处理不同的日志分组标识中的日志信息,具体地处理方法是先确定日志信息中的待同步数据的标识对应的目的端数据的第二时间戳,然后比较第二时间戳和日志信息中的待同步数据的标识在源端的第一时间戳,若判断若所述第一时间戳晚于所述第二时间戳,则从源端获取与所述标识对应的源端数据以更新所述目的端数据。可见,通过这种数据同步方法可以避免直接比较源数据的时间戳,而是获取源数据日志信息的时间戳,比较日志信息中的时间戳,显然只有当源数据发生变化时才会有日志信息,因此这种比较方法可以明显减少对源数据的读取频率,另外,目的端可以并行处理不同日志分组标识中的日志信息,故进一步提高了处理效率。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供一种数据同步方法流程示意图;

图2为本发明实施例提供一种数据同步方法实施例一流程示意图;

图3为本发明实施例提供一种数据同步系统架构示意图一;

图4为本发明实施例提供一种数据同步系统架构示意图二;

图5为本发明实施例提供一种数据同步系统的目的端架构示意图。

具体实施方式

为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部份实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

参见图1所示,本发明实施例提供一种数据同步方法流程示意图,具体地实现方法包括:

步骤S101,目的端向源端发送数据同步请求,所述数据同步请求包含待同步数据的日志分组标识。

步骤S102,所述目的端接收所述源端发送的所述日志分组标识的N条日志信息,每条日志信息至少包括待同步数据的标识和待同步数据在源端的第一时间戳,N为正整数。

步骤S103,所述目的端按照如下方式并行处理所述日志分组标识的N条日志信息:针对每条日志信息,根据所述日志信息中的待同步数据的标识,确定与所述标识对应的目的端数据的第二时间戳;若所述第一时间戳晚于所述第二时间戳,则从所述源端获取与所述标识对应的源端数据以更新所述目的端数据。

在上述方法中目的端指的是备份源端数据的备用系统,而源端指的是产生数据的主用系统,通常源端和目的端存在于灾备系统结构中,目的端为了保持和源端的数据同步,就需要不断地向源端发出数据同步请求,为了提高数据同步的实时性,本发明实施例在执行步骤S101之前,源端会将本地生成的日志信息进行分组,即将日志里面的日志信息按照索引划分成多个组,具体地分组方法可以采用TAG分散的方法,比如说总TAG数为8,源端每生成一条日志就会对应生成该条日志的索引Index,将这个Index除以最大TAG数后取余,所得余数就是这条日志对应的分组数。可见,通过这种分组方法就可以将源端中的日志集合划分成多个组,需要说明的是上述分组是实时的,即源端每生成一条日志,该条日志就会被立即划分至组中。

当源端将日志集合划分成多个组之后,会为每个组建立日志分组标识,并将这些日志分组标识共享给目的端。目的端向源端发送数据同步请求时,数据同步请求中就会携带这些日志分组标识信息,源端将这些日志分组标识信息中的日志发送至目的端,目的端可以并行接收不同日志分组标识中日志,并比较日志信息中时间戳,然后根据比较结果进行同步,另外,在源端将这些日志分组标识信息中的日志发送至目的端之前,可以进一步地筛选组中的日志,筛选的方法就是将比较日志的时间戳和日志中待同步数据的标识对应的源端的数据的时间戳进行比较,若发现源端该标识的数据已经比日志中时间戳新,则直接可以过滤这个日志,即不再将这条日志发送给目的端作比较,当然,若发现源端该标识的数据与日志中时间戳一致,就将分组中日志对应地发送至目的端,可见,通过这一筛选日志的步骤可以进一步提高目的端处理数据的效率。

进一步地,考虑到源端数据的日志操作类型可以有新增、修改、删除这三种类型,针对不同的操作类型,目的端需要进行不同的同步处理,具体地,所述目的端从所述日志信息中确定出所述操作类型是修改或者删除的日志信息;对于操作类型是修改的日志信息,所述目的端从所述源端获取与所述日志信息中的标识对应的源端数据替换所述目的端数据;对于操作类型是删除的日志信息,所述目的端根据所述日志信息中的标识删除所述目的端数据。

进一步地,所述目的端从所述日志信息中确定出所述操作类型是新增的日志信息;对于操作类型是新增的日志信息,所述目的端从所述源端获取与所述标识对应的源端数据添加到所述目的端。

为了系统地描述上述数据同步方法,本发明实施例进一步提供图2所示的流程图详细阐述。

步骤201,目的端向源端发送数据同步请求,数据同步请求中包含日志分组标识。

步骤202,源端将数据同步请求中的日志分组标识中的日志发送至目的端。

步骤203,目的端接收源端发送的日志信息后,判断日志的操作类型是新增类型,还是修改或者删除类型。

步骤204,若操作类型是修改或者删除类型,则获取日志信息中的待同步数据在源端的第一时间戳,然后和目的端中待同步数据的标识对应的目的端数据的第二时间戳进行比较。

步骤205,若发现第一时间戳晚于所述第二时间戳,则从所述源端获取与所述标识对应的源端数据以更新所述目的端数据,并且把该条日志信息标记为已处理。

步骤206,若发现第一时间戳早于所述第二时间戳,则不进行同步,并且将该条日志标记为已处理。

步骤207,若操作类型是新增类型,目的端从所述源端获取与所述标识对应的源端数据添加到所述目的端。

步骤208,当目的端完成同步处理之后会更新目的端数据的第二时间戳。

举例来说,假设北京备用系统对上海主用系统的上海中心数据进行同步,上海中心数据中有4张sheet表数据,在2016.07.01这一天当中有部分表格中的部分数据发生更新,假设在这一天AM10:00这一时刻sheet1中的a[1][1](第一行第一列的源数据)被更新,此时对应生成第一条日志:2016.07.01 10:00a[1][1]数据更新,对应该条日志的索引记录为index1;依次类推生成第二条日志和第三条日志;这一天AM10:30这一时刻sheet1中的a[1][1](第一行第一列的源数据)被更新,此时对应生成第四条日志:2016.07.01 10:30a[1][1]数据更新,对应该条日志的索引记录为index4;依次类推生成第五条日志;这一天AM 11:00这一时刻Sheet2中的b[5][1](第五行第一列的源数据)被删除,此时对应生成第六条日志:2016.07.01 11:00数据删除数据,对应该条日志的索引记录为index6。按照上述TAG分散方法将index1、index3、index5被三条日志被分组到TAG1(分组标签1),index2、index4、index6被分组到TAG2(分组标签2)。

另外,北京中心数据中也有4张sheet表数据(是上海中心数据的备份),这四张表最后同步的时间是2016.06.30,时刻23:00,因此这四张表的第二时间戳落在2016.06.30,时刻23:00。假设在2016.07.01这一天AM12:00这一时刻,北京的第二客户端请求同步上海中心的日志分组标识TAG2所对应的源数据,上海的服务器接收到同步请求后将TAG2中日志发送至北京的第二客户端,第二客户端按照如下方式进行同步:比如,针对第四条日志,比较index4对应的日志的时间戳2016.07.01时刻10:30比北京中心数据a[1][1]的源数据最后更新时间戳2016.06.30 23:00晚,所以对a[1][1]进行更新处理,更新北京的中心数据a[1][1],并更新第二时间戳为2016.07.01 10:30。对第六条日志,比较index6对应的日志的时间戳2016.07.01 11:00比北京中心数据b[5][1]的源数据最后更新时间戳2016.06.30 23:00晚,所以对b[5][1]进行更新处理,更新b[5][1]源数据记录的时间戳为2016.07.01 11:00,当index2、index4、index6对应的日志全部处理完成,则针对本次同步请求的同步结束。

假设在2016.07.01这一天AM12:05这一时刻,北京的第二客户端请求同步上海中心的日志分组标识TAG1所对应的源数据,上海的服务器接收到同步请求后,将TAG2中日志发送至北京的第二客户端,第二客户端按照如下方式进行同步:比如,针对第一条日志,比较index1的时间戳2016.07.01 10:00比北京中心数据a[1][1]的源数据最后更新时间戳2016.07.01 10:30早,所以不对a[1][1]处理,并标识该条索引index1已被处理,依次类推再处理TAG1其他日志信息。

进一步地,所述源端和所述目的端互为主备双活系统中的主用系统和备用系统;所述源端包括第一服务器和多个第一客户端,通过所述第一客户端向所述第二服务器发送信息;

所述目的端包括第二服务器和多个第二客户端,通过所述第二客户端向所述第一服务器发送信息。

如图3所示,上海的主用系统主要包括第一服务器和第一客户端,北京的备用系统主要包括第二服务器和第二客户端,当北京侧同步上海侧的数据时,北京备用系统的第二客户端向第一服务器发送数据同步请求,第一服务器从上海中心数据中获取日志信息,然后通过第一服务器发送至北京备用系统的第二客户端,进而第二客户端按照上述数据同步方法进行同步;另外,当上海侧同步北京侧的数据时,上海备用系统的第一客户端向第二服务器发送数据同步请求,第二服务器从北京中心数据中获取日志信息,然后通过第二服务器发送至上海主用系统的第一客户端,进而第一客户端按照上述数据同步方法进行同步。可见这种数据同步方法因为服务器和客户端都可以根据需要,分布式部署。多个服务器之间可以互为主备。客户端也可以每两个为一组,处理同一个日志分组标识对应的日志信息,所以具有横向伸缩,多机高可用的特点。

进一步地,从所述多个第二客户端中选举一个第二客户端向所述第一服务器发送数据同步请求;所述多个第二客户端竞争接收所述第一服务器发送的同一日志分组标识的各个日志信息;针对每个第二客户端接收的每条日志信息,各个第二客户端按照如下方式并行处理接收的每条日志信息。

如图4所示,北京侧的备用系统具有多个第二客户端,当北京侧同步上海侧的数据时,北京侧从多个第二客户端中选举出一个客户端向上海的第一服务器发送包含日志分组标识TAG1的数据同步请求,然后上海侧的第一服务器向各个第二客户端发送TAG1中的每条日志信息,各个第二客户端这时竞争接收每条日志信息,然后并行处理接收的日志信息,可见这样可以提高每次数据同步的效率。

进一步地,若所述第二客户端连续M次从所述源端获取所述日志信息的标识对应的源端数据均失败,则所述第二客户端停止获取所述源端数据,并标记所述日志信息的状态为处理失败,M为正整数。

需要说明的是,客户端同步请求容错次数M是可调的,即使最终同步失败,仍然可追溯,且只需要处理同步失败的问题记录,解决记录同步失败时只能根据时间参数全量联机同步的问题;目前客户端有5次尝试同步记录的机会,如果5次同步均失败,则该源记录状态被置为最终失败,不再被客户端获取。这个次数是可调的。即使最终失败,也可以方便的通过索引表查到失败的记录,定位问题后再同步这些失败的记录。然后对于状态为处理失败的日志信息后续由管理员进行人工处理。

需要说明的是,若所述第二客户端成功获取所述日志信息的标识对应的源端数据,则所述第二客户端根据所述日志信息中的待同步数据的标识,用获取的源端数据更新所述目的端数据,并且所述目的端将所述目的端数据的所述第二时间戳更新为源端数据的所述第一时间戳。这样当下一次同步时,备用系统的客户端只同步更新时间戳较新的数据,保证目标数据状态最新有效。

基于相同的技术构思,本发明实施例还提供一种数据同步系统,该系统包括源端和目的端,所述目的端可执行上述方法实施例。本发明实施例提供的目的端如图5所示,包括:发送单元401、接收单元402、处理单元403,其中:

发送单元401,用于向源端发送数据同步请求,所述数据同步请求包含待同步数据的日志分组标识;

接收单元402,用于接收所述源端发送的所述日志分组标识的N条日志信息,每条日志信息至少包括待同步数据的标识和待同步数据在源端的第一时间戳,N为正整数;

处理单元403,用于按照如下方式并行处理所述日志分组标识的N条日志信息:针对每条日志信息,根据所述日志信息中的待同步数据的标识,确定与所述标识对应的目的端数据的第二时间戳;若所述第一时间戳晚于所述第二时间戳,则从所述源端获取与所述标识对应的源端数据以更新所述目的端数据。

进一步地,每条日志信息还包括操作类型;所述目的端还包括:选择单元404,用于从所述日志信息中确定出所述操作类型是修改或者删除的日志信息;

所述处理单元403具体用于:对于操作类型是修改的日志信息,从所述源端获取与所述日志信息中的标识对应的源端数据替换所述目的端数据;对于操作类型是删除的日志信息,根据所述日志信息中的标识删除所述目的端数据。

进一步地,所述选择单元404还用于:从所述日志信息中确定出所述操作类型是新增的日志信息;

所述处理单元403还用于:对于操作类型是新增的日志信息,从所述源端获取与所述标识对应的源端数据添加到所述目的端。

进一步地,还包括:所述源端和所述目的端互为主备双活系统中的主用系统和备用系统;所述源端包括第一服务器和多个第一客户端,通过所述第一客户端向所述第二服务器发送信息;

所述目的端包括第二服务器和多个第二客户端,通过所述第二客户端向所述第一服务器发送信息。

进一步地,所述发送单元401具体用于:从所述多个第二客户端中选举一个第二客户端向所述第一服务器发送数据同步请求;

所述接收单元402具体用于:竞争接收所述第一服务器发送的同一日志分组标识的各个日志信息;

所述处理单元403具体用于:针对每个第二客户端接收的每条日志信息,按照如下方式并行处理接收的每条日志信息。

进一步地,所述处理单元403还用于:若所述第二客户端连续M次从所述源端获取所述日志信息的标识对应的源端数据均失败,则所述第二客户端停止获取所述源端数据,并标记所述日志信息的状态为处理失败,M为正整数。

进一步地,所述处理单元403还用于:将所述目的端数据的所述第二时间戳更新为源端数据的所述第一时间戳。

综上所述,本发明实施例提供的数据同步方法,目的端每次向源端发送的数据同步请求中均携带日志信息所属的日志分组标识,源端会将该日志分组标识中的日志信息发送给目的端,然后目的端可以并行处理不同的日志分组标识中的日志信息,具体地处理方法是先确定日志信息中的待同步数据的标识对应的目的端数据的第二时间戳,然后比较第二时间戳和日志信息中的待同步数据的标识在源端的第一时间戳,若判断若所述第一时间戳晚于所述第二时间戳,则从源端获取与所述标识对应的源端数据以更新所述目的端数据。可见,通过这种数据同步方法可以避免直接比较源数据的时间戳,而是获取源数据日志信息的时间戳,比较日志信息中的时间戳,显然只有当源数据发生变化时才会有日志信息,因此这种比较方法可以明显减少对源数据的读取频率,另外,目的端可以并行处理不同日志分组标识中的日志信息,故进一步提高了处理效率。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1