一种分布式数据同步方法及系统的制作方法

文档序号:7804265阅读:171来源:国知局
一种分布式数据同步方法及系统的制作方法
【专利摘要】本发明公开了一种分布式数据同步方法及系统。该方法包括:第一客户端与中心服务器进行数据记录同步;第二客户端从所述中心服务器同步数据记录。该系统包括客户端和中心服务器;所述客户端包括第一同步模块,所述中心服务器包括第二同步模块;所述第一同步模块与所述第二同步模块进行数据记录同步。本发明通过对数据记录进行同步,使得不同的客户端可以同时对同一数据块中的记录进行修改,并且在数据上传和下载的过程中,仅仅上传和下载修改的部分,提高了系统资源的利用率。
【专利说明】一种分布式数据同步方法及系统
【技术领域】
[0001]本发明涉及分布式数据同步,具体地,涉及一种分布式数据同步方法及系统。
【背景技术】
[0002]在分布式数据备份系统中,多个业务系统需要共享一整套会发生变化数据集。对于单个业务系统而言,其仅能读写整套数据集中的一个子集,每个业务系统可以修改自己负责的子集,而多个业务系统的子集可以存在交集。在多个业务系统的子集存在交集的情况下,如果各个业务系统分别提交同一份数据,可能会造成数据之间的冲突。现有技术中,为了避免发生数据的冲突,需要控制在同一时刻只能由一个业务系统提交数据,因此影响了系统的工作效率。

【发明内容】

[0003]本发明的目的是提供一种分布式数据同步方法及系统,以提高数据的容灾性能,并提升系统资源的利用率。
[0004]本发明提供了一种分布式数据同步方法,该方法包括:第一客户端与中心服务器进行数据记录同步;第二客户端从所述中心服务器同步数据记录。
[0005]优选地,该方法还包括:在第一客户端与中心服务器进行数据记录同步之前,所述中心服务器向所述第一客户端和所述第二客户端广播配置信息。
[0006]优选地,在所述第一客户端初次提交数据记录至所述中心服务器的情况下,所述第一客户端与中心服务器进行数据记录同步包括:所述第一客户端提交数据记录至所述中心服务器;所述中心服务器确定所述第一客户端初次提交数据记录之后,所述中心服务器初始化数据记录版本号并将所述数据记录版本号发送至所述第一客户端,所述服务器将该数据记录版本号作为所述中心服务器的数据记录版本号存储,所述第一客户端将该数据记录版本号作为所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号存储。
[0007]优选地,在所述第一客户端非初次提交数据记录至所述中心服务器的情况下,所述第一客户端与中心服务器进行数据记录同步包括:如果所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录被修改,则所述第一客户端将所述第一客户端的数据记录版本号加一,并将被修改的数据记录提交至所述中心服务器,所述中心服务器将所述中心服务器的数据记录版本号加一后发送至所述第一客户端;如果所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录未被修改,则所述第一客户端不向所述中心服务器提交数据记录;如果所述第一客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录未被修改,则所述第一客户端从所述中心服务器同步数据记录;如果所述第一客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录被修改,则所述第一客户端和/或所述中心服务器按照配置的策略进行操作。[0008]优选地,该方法还包括:所述第一客户端从所述中心服务器下载所述中心服务器的数据记录版本号和所述中心服务器的数据记录摘要,所述第一客户端计算所述第一客户端的数据记录摘要;如果第一客户端的数据记录摘要与所述服务器的数据记录摘要一致,则判定数据记录未被修改;如果第一客户端的数据记录摘要与所述服务器的数据记录摘要不一致,则判定数据记录被修改。
[0009]优选地,所述第一客户端以特定时间间隔或实时地与中心服务器进行数据记录同
止/J/ O
[0010]优选地,第二客户端从所述中心服务器同步数据记录包括:所述第二客户端从所述中心服务器下载所述中心服务器的数据记录版本号,在所述第二客户端的数据记录版本号低于所述中心服务器的数据记录版本号的情况下,所述第二客户端从所述中心服务器同步数据记录。
[0011]优选地,所述第二客户端以特定时间间隔从所述中心服务器同步数据记录。
[0012]本发明提供了一种分布式数据同步系统,该系统包括客户端和中心服务器;所述客户端包括第一同步模块,所述中心服务器包括第二同步模块;所述第一同步模块与所述第二同步模块进行数据记录同步。
[0013]优选地,所述中心服务器还包括广播模块,用于在所述第一同步模块与所述第二同步模块进行数据记录同步之前向所述客户端广播配置信息。
[0014]优选地,所述第二同步还包括第二判定模块、第二数据记录版本号处理模块和第二存储模块;所述第二判定模块,用于判定所述第一同步模块是否初次提交数据记录;所述第二数据记录版本号处理模块,用于在第二判定模块判定所述第一同步模块初次提交数据记录的情况下,初始化数据记录版本号,并将所述数据记录版本号发送至第一同步模块;所述第二存储模块,用于将初始化的数据记录版本号作为所述中心服务器的数据记录版本号存储。
[0015]优选地,其特征在于,所述第一同步模块包括第一判定模块、第一数据记录版本号处理模块、数据记录提交模块、数据记录更新模块、第一策略执行模块和第一存储模块;所述第一判定模块,用于在所述第一同步模块不是初次提交数据记录的情况下,判定所述客户端的数据记录版本号和所述中心服务器的数据记录版本号是否相同且数据记录是否被修改;第一数据记录版本号处理模块,用于在所述第一同步模块不是初次提交数据记录的情况下,将所述客户端的数据记录版本号加一;所述数据记录提交模块,用于所述客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录被修改的情况下,将被修改的数据记录提交至所述第二同步模块;在所述客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录未被修改的情况下,不向所述中心服务器提交数据记录;所述数据记录更新模块,用于在所述客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录未被修改的情况下,从所述第二同步模块同步数据记录;第一策略执行模块,用于所述客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录被修改的情况下,按照策略进行操作;所述第二数据记录版本号处理模块,用于在第二判定模块所述第一同步模块不是初次提交数据记录的情况下,将所述数据记录版本号发送至第一同步模块;所述第一存储模块,用于将初始化的数据记录版本号作为所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号存储,并将加一后的所述客户端的数据记录版本号存储。
[0016]优选地,其特征在于,第二同步模块,还包括第二数据记录摘要计算模块,用于计算所述中心服务器的数据记录摘要;第一同步模块还包括下载模块和第一数据记录摘要计算模块,所述下载模块用于从所述第二同步模块下载所述中心服务器的数据记录版本号和所述中心服务器的数据记录摘要,所述第一数据记录摘要计算模块用于计算所述客户端的数据记录摘要;所述第一判定模块,用于在客户端的数据记录摘要与所述服务器的数据记录摘要一致的情况下,判定数据记录未被修改;在客户端的数据记录摘要与所述服务器的数据记录摘要不一致的情况下,判定数据记录被修改。
[0017]优选地,所述第一同步模块以特定时间间隔或实时地与第二同步模块进行数据记录同步。
[0018]优选地,所述第二同步模块还包括第二策略执行模块,用于所述客户端的数据记录版本号低于所述中心服务器的数据记录版本号的情况下,按照策略进行操作。
[0019]本发明通过对数据记录进行同步,使得不同的客户端可以同时对同一数据块中的记录进行修改,采用基于策略文件配置的方式实现权限和数据范围的划分以及冲突的处理,并且在数据上传和下载的过程中,仅仅上传和下载修改的部分,提高了系统资源的利用率。本发明还支持在线和离线多种方式同步数据并支持自动、定时等多种触发方式进行数据同步。
【专利附图】

【附图说明】
[0020]附图是用来提供对本发明的进一步理解,并且构成说明书的一部分,与下面的【具体实施方式】一起用于解释本发明,但并不构成对本发明的限制。在附图中:
[0021]图1是本发明提供的数据同步流程示意图;
[0022]图2是本发明提供的分布式数据同步系统示意图。
【具体实施方式】
[0023]以下结合附图对本发明的【具体实施方式】进行详细说明。应当理解的是,此处所描述的【具体实施方式】仅用于说明和解释本发明,并不用于限制本发明。
[0024]为了实现分布式的数据备份,本发明提供了一种分布式数据同步方法,在该同步方法中涉及中心服务器以及若干个客户端。客户端的数量可以根据需要进行设置,在本发明提供的实施例中,以两个客户端作为示例,即第一客户端和第二客户端。需要说明的是,在正常的数据备份的过程中,第一客户端和第二客户端是不同的数据库系统,在故障恢复的过程中,第一客户端和第二客户端可以是相同的数据库系统。
[0025]本发明提供的分布式数据同步方法,包括:第一客户端与中心服务器进行数据记录同步;第二客户端从所述中心服务器同步数据记录。具体而言,第一客户端可以根据自身的判断,必要的情况下,就可以将数据记录提交到中心服务器,由中心服务器进行备份;数据记录可以是数据表中每一行中记载的数据信息。需要说明的是,为了保证服务器和客户端的配置一致,分布式数据同步系统在进行数据记录备份之前,可以向各个客户端广播系统配置表。系统配置表的结构如下:
[0026]表I系统配置表[0027]
【权利要求】
1.一种分布式数据同步方法,其特征在于,该方法包括: 第一客户端与中心服务器进行数据记录同步; 第二客户端从所述中心服务器同步数据记录。
2.根据权利要求1所述的方法,其特征在于,该方法还包括:在第一客户端与中心服务器进行数据记录同步之前,所述中心服务器向所述第一客户端和所述第二客户端广播配置信息。
3.根据权利要求1所述的方法,其特征在于,在所述第一客户端初次提交数据记录至所述中心服务器的情况下,所述第一客户端与中心服务器进行数据记录同步包括: 所述第一客户端提交数据记录至所述中心服务器; 所述中心服务器确定所述第一客户端初次提交数据记录之后,所述中心服务器初始化数据记录版本号并将所述数据记录版本号发送至所述第一客户端,所述服务器将该数据记录版本号作为所述中心服务器的数据记录版本号存储,所述第一客户端将该数据记录版本号作为所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号存储。
4.根据权利要求1所述的方法,其特征在于,在所述第一客户端非初次提交数据记录至所述中心服务器的情况下,所述第一客户端与中心服务器进行数据记录同步包括: 如果所述第一客 户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录被修改,则所述第一客户端将所述第一客户端的数据记录版本号加一,并将被修改的数据记录提交至所述中心服务器,所述中心服务器将所述中心服务器的数据记录版本号加一后发送至所述第一客户端; 如果所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录未被修改,则所述第一客户端不向所述中心服务器提交数据记录; 如果所述第一客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录未被修改,则所述第一客户端从所述中心服务器同步数据记录; 如果所述第一客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录被修改,则所述第一客户端和/或所述中心服务器按照配置的策略进行操作。
5.根据权利要求4所述的方法,其特征在于,该方法还包括:所述第一客户端从所述中心服务器下载所述中心服务器的数据记录版本号和所述中心服务器的数据记录摘要,所述第一客户端计算所述第一客户端的数据记录摘要;如果第一客户端的数据记录摘要与所述服务器的数据记录摘要一致,则判定数据记录未被修改;如果第一客户端的数据记录摘要与所述服务器的数据记录摘要不一致,则判定数据记录被修改。
6.根据权利要求1所述的方法,其特征在于,所述第一客户端以特定时间间隔或实时地与中心服务器进行数据记录同步。
7.根据权利要求3、4或5所述的方法,其特征在于,第二客户端从所述中心服务器同步数据记录包括: 所述第二客户端从所述中心服务器下载所述中心服务器的数据记录版本号,在所述第二客户端的数据记录版本号低于所述中心服务器的数据记录版本号的情况下,所述第二客户端从所述中心服务器同步数据记录。
8.根据权利要求1-6任意一项所述的方法,其特征在于,所述第二客户端以特定时间间隔从所述中心服务器同步数据记录。
9.一种分布式数据同步系统,其特征在于,该系统包括客户端和中心服务器; 所述客户端包括第一同步模块,所述中心服务器包括第二同步模块; 所述第一同步模块与所述第二同步模块进行数据记录同步。
10.根据权利要求9所述的分布式数据同步系统,其特征在于,所述中心服务器还包括广播模块,用于在所述第一同步模块与所述第二同步模块进行数据记录同步之前向所述客户端广播配置信息。
11.根据权利要求9所述的分布式数据同步系统,其特征在于,所述第二同步还包括第二判定模块、第二数据记录版本号处理模块和第二存储模块; 所述第二判定模块,用于判定所述第一同步模块是否初次提交数据记录; 所述第二数据记录版本号处理模块,用于在第二判定模块判定所述第一同步模块初次提交数据记录的情况下,初始化数据记录版本号,并将所述数据记录版本号发送至第一同步丰吴块; 所述第二存储模块,用于将初始化的数据记录版本号作为所述中心服务器的数据记录版本号存储。
12.根据权利要求11所述的分布式数据同步系统,其特征在于, 所述第一同步模块包括第一判定模块、第一数据记录版本号处理模块、数据记录提交模块、数据记录更新模块、第一策略执行模块和第一存储模块; 所述第一判定模块,用于在所述第一同步模块不是初次提交数据记录的情况下,判定所述客户端的数据记录版本号和所述中心服务器的数据记录版本号是否相同且数据记录是否被修改; 第一数据记录版本号处理模块,用于在所述第一同步模块不是初次提交数据记录的情况下,将所述客户端的数据记录版本号加一; 所述数据记录提交模块,用于所述客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录被修改的情况下,将被修改的数据记录提交至所述第二同步模块;在所述客户端的数据记录版本号和所述中心服务器的数据记录版本号相同且数据记录未被修改的情况下,不向所述中心服务器提交数据记录; 所述数据记录更新模块,用于在所述客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录未被修改的情况下,从所述第二同步模块同步数据记录; 所述第一策略执行模块,用于所述客户端的数据记录版本号低于所述中心服务器的数据记录版本号且数据记录被修改的情况下,按照策略进行操作; 所述第二数据记录版本号处理模块,用于在第二判定模块所述第一同步模块不是初次提交数据记录的情况下,将所述数据记录版本号发送至第一同步模块; 所述第一存储模块,用于将初始化的数据记录版本号作为所述第一客户端的数据记录版本号和所述中心服务器的数据记录版本号存储,并将加一后的所述客户端的数据记录版本号存储。
13.根据权利要求12所述的分布式数据同步系统,其特征在于,其特征在于,第二同步模块,还包括第二数据记录摘要计算模块,用于计算所述中心服务器的数据记录摘要;第一同步模块还包括下载模块和第一数据记录摘要计算模块,所述下载模块用于从所述第二同步模块下载所述中心服务器的数据记录版本号和所述中心服务器的数据记录摘要,所述第一数据记录摘要计算模块用于计算所述客户端的数据记录摘要;所述第一判定模块,用于在客户端的数据记录摘要与所述服务器的数据记录摘要一致的情况下,判定数据记录未被修改;在客户端的数据记录摘要与所述服务器的数据记录摘要不一致的情况下,判定数据记录被修改。
14.根据权利要求8所述的分布式数据同步系统,其特征在于,所述第一同步模块以特定时间间隔或实时地与第二同步模块进行数据记录同步。
15.根据权利要求11、12或13所述的分布式数据同步系统,其特征在于,所述第二同步模块还包括第二策略执行模块,用于所述客户端的数据记录版本号低于所述中心服务器的数据记录版本号的情 况下,按照策略进行操作。
【文档编号】H04L29/08GK103997525SQ201410215864
【公开日】2014年8月20日 申请日期:2014年5月21日 优先权日:2014年5月21日
【发明者】张 杰, 陈暾 申请人:北京紫光天禾软件系统技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1