数据同步方法及装置制造方法

文档序号:8004906阅读:159来源:国知局
数据同步方法及装置制造方法
【专利摘要】本发明公开了数据同步方法及装置,其中,该方法包括:在第一设备向第二设备进行数据同步完成后,第一设备接收第二设备发送的校验信息,其中,该校验信息用于确定数据同步是否成功;第一设备至少根据该校验信息判断数据同步是否成功;在数据同步失败的情况下,第一设备向第二设备进行数据同步。本发明解决了设备之间同步数据出错的问题,提高了数据同步的可靠性。
【专利说明】数据同步方法及装置

【技术领域】
[0001]本发明涉及通信领域,具体而言,涉及一种数据同步方法及装置。

【背景技术】
[0002]现有内存数据库的同步技术在主备和多模块(当多个模块时I号模块数据作为基准数据向其它模块分发)间多采用变化表和变化记录同步的方式,当表和记录发生变化时,把这些变化数据打包发送到备机或者其它模块,这些同步机制只是在数据发生变化时才会触发数据同步,而数据变化的判断机制是表记录是否发生修改,如果没有数据修改就不会触发数据同步。
[0003]由于网络环境复杂,主备和多模块间数据都是跨板消息,消息难免出现丢失或者同步过程中接收端出现异常的现象,尤其是同步完成后,接收端出现记录存放的区域内存被踩的情况,这种情况一般难以发现,而此时I号模块数据如果没有发生修改也就不会触发数据同步,这种情况备机和其它模块的数据就会出现错误。如果这种情况下进行了主备倒换,则系统会发生未知的灾难。
[0004]针对相关技术中设备之间同步数据出错的问题,目前尚未提出有效的解决方案。


【发明内容】

[0005]本发明提供了一种数据同步方法及装置,以至少解决设备之间同步数据出错的问题。
[0006]根据本发明的一个方面,提供了一种数据同步方法,包括:在第一设备向第二设备进行数据同步完成后,所述第一设备接收所述第二设备发送的校验信息,其中,所述校验信息用于确定所述数据同步是否成功;所述第一设备至少根据所述校验信息判断所述数据同步是否成功;在所述数据同步失败的情况下,所述第一设备向所述第二设备进行数据同步。
[0007]优选地,在所述第一设备和/或所述第二设备本地空闲的设备资源超过阈值的情况下,启动所述数据同步方法;或者,接收到启动命令,启动所述数据同步方法。
[0008]优选地,所述设备包括以下至少之一:处理器资源、内存资源、带宽资源、1资源。
[0009]优选地,在所述校验信息包括数据版本号的情况下,所述第一设备根据所述校验信息判断所述数据同步是否成功包括:所述第一设备判断来自所述第二设备的数据版本号与所述第一设备的数据版本号是否相同,如果相同,则确定数据同步成功,如果不相同,则确定数据同步失败。
[0010]优选地,在数据同步的是数据库数据的情况下,所述校验信息包括:所述第二设备对数据库中的预定表中的部分或全部记录进行计算得到的校验和,所述第一设备根据所述校验信息判断所述数据同步是否成功包括:所述第一设备对本地存储的与所述预定表对应的表中对应的记录进行计算得到所述第一设备的校验和;所述第一设备判断所述第二设备的校验和与所述第一设备的校验和是否相同,如果相同,确定数据同步成功,如果不相同,则确定数据同步失败。
[0011]根据本发明的另一方面,提供了一种数据同步装置,位于第一设备中,其特征在于,包括:接收模块,用于在第一设备向第二设备进行数据同步完成后,接收所述第二设备发送的校验信息,其中,所述校验信息用于确定所述数据同步是否成功;判断模块,用于至少根据所述校验信息判断所述数据同步是否成功;同步模块,用于在所述数据同步失败的情况下,向所述第二设备进行数据同步。
[0012]优选地,数据同步装置还包括:启动模块,用于在所述第一设备和/或所述第二设备本地空闲的设备资源超过阈值的情况下,启动所述数据同步装置;或者,用于接收到启动命令,启动所述数据同步装置。
[0013]优选地,所述设备资源包括以下至少之一:处理器资源、内存资源、带宽资源、1资源。
[0014]优选地,所述判断模块还用于在所述校验信息包括数据版本号的情况下,判断来自所述第二设备的数据版本号与所述第一设备的数据版本号是否相同,如果相同,则确定数据同步成功,如果不相同,则确定数据同步失败。
[0015]优选地,在数据同步的是数据库数据的情况下,所述校验信息包括:所述第二设备对数据库中的预定表中的部分或全部记录进行计算得到的校验和,所述判断模块还用于对本地存储的与所述预定表对应的表中对应的记录进行计算得到所述第一设备的校验和,判断所述第二设备的校验和与所述第一设备的校验和是否相同,如果相同,确定数据同步成功,如果不相同,则确定数据同步失败。
[0016]通过本发明,采用在第一设备向第二设备进行数据同步完成后,第一设备接收第二设备发送的校验信息,其中,校验信息用于确定数据同步是否成功;第一设备至少根据该校验信息判断数据同步是否成功;在数据同步失败的情况下,第一设备向第二设备进行数据同步,解决了设备之间同步数据出错的问题,提高了数据同步的可靠性。

【专利附图】

【附图说明】
[0017]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0018]图1是根据本发明实施例的数据同步方法的流程图;
[0019]图2是根据本发明实施例的数据同步装置的结构图;
[0020]图3是根据本发明优选实施例的内存数据库数据检查和同步的结构图;
[0021]图4是根据本发明优选实施例的数据检查和同步的流程图;
[0022]图5是根据本发明优选实施例的内存数据库同步数据校验功能模块拓扑结构图;
[0023]图6是根据本发明优选实施例的内存数据库同步数据校验交互图。

【具体实施方式】
[0024]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0025]本实施例中提供了一种数据同步方法,图1是根据本发明实施例的数据同步方法的流程图,如图1所示,该方法包括如下的步骤:
[0026]步骤S102,在第一设备向第二设备进行数据同步完成后,第一设备接收第二设备发送的校验信息,其中,该校验信息用于确定所述数据同步是否成功;
[0027]步骤S104,第一设备至少根据校验信息判断数据同步是否成功;
[0028]步骤S106,在数据同步失败的情况下,第一设备向第二设备进行数据同步。
[0029]通过上述步骤,增加了根据校验信息来进行判断的机制,从而可以使第一设备判断出数据同步是否成功,从而为发现同步数据出错提供了可能,解决了设备之间同步数据出错的问题,提高了设备之间数据同步的可靠性。
[0030]优选的,上述图1中所示出的方法,在本实施例中,在第一设备和/或第二设备本地空闲的设备资源超过阈值的情况下,可以启动数据同步方法;或者,可以在接收到启动命令后,启动数据同步方法。例如,在执行过程中主要涉及到的资源包括CPU、内存、网口带宽以及磁盘10,用户可以配置这四类资源的空闲阈值,当这四类资源空闲率超过这四个阈值时认为系统空闲。可以同时要求这四个资源均空闲超过阈值,也可以要求单个资源空闲超过阈值就可以启动上述方法。例如,当CPU资源空闲超过50%时,则可以启动此数据检查机制。作为另一个优选的方式,还可以提供用户手工触发或配置检查时间点来启动此检查机制。
[0031]在本实施例中,第一设备和第二设备之间检验信息可以有很多种,例如,在校验信息包括数据版本号的情况下,第一设备根据该校验信息判断数据同步是否成功包括:第一设备判断来自第二设备的数据版本号与第一设备的数据版本号是否相同,如果相同,确定数据同步成功,如果不相同,则确定数据同步失败。
[0032]检验信息还可以包括:第二设备对数据库中的预定表中的部分或全部记录进行计算得到的校验和,第一设备根据该校验信息判断所述数据同步是否成功包括:第一设备对本地存储的与所述预定表对应的表中对应的记录进行计算得到第一设备的校验和;第一设备判断第二设备的校验和与第一设备的校验和是否相同,如果相同,确定数据同步成功,如果不相同,则确定数据同步失败。
[0033]优选的,这些预定表可以是此次数据同步中涉及到的全部表,也可以是数据同步中涉及到的某些重要的表。
[0034]作为另一个较优的实施例,在检测到数据同步失败之后,还可以检测出是哪部分数据同步失败了,然后只再次同步失败的数据。
[0035]在本实施例中,还提供了一种数据同步装置,该菜单处理装置用于实现上述的方法,在上述实施例及优选实施方式中已经进行说明,在此不再赘述。需要说明的是,下述装置中的模块的名称并不构成对该模块的实际限定,例如,接收模块可以表述为“用于在第一设备向第二设备进行数据同步完成后,接收所述第二设备发送的校验信息的模块”,以下的模块均可以在处理器中实现,例如,接收模块可以表述为“ 一种处理器,用于在第一设备向第二设备进行数据同步完成后,接收所述第二设备发送的校验信息”,或者,“一种处理器,包括接收模块”等。
[0036]图2是根据本发明实施例的数据同步装置的结构图,如图2所示,该装置20包括:接收模块22,判断模块24和同步模块26,下面对该装置进行说明。
[0037]接收模块22,用于在第一设备向第二设备进行数据同步完成后,接收第二设备发送的校验信息,其中,校验信息用于确定数据同步是否成功;判断模块24,用于至少根据校验信息判断数据同步是否成功;同步模块26,用于在数据同步失败的情况下,向第二设备进行数据同步。
[0038]优选的,在本实施例中,数据同步装置还包括:启动模块,用于在第一设备和/或第二设备本地空闲的设备资源超过阈值的情况下,启动数据同步装置;或者,用于接收到启动命令,启动数据同步装置。
[0039]优选的,设备资源包括以下至少之一:处理器资源、内存资源、带宽资源、输入输出1资源。
[0040]优选的,判断模块24还用于在该校验信息包括数据版本号的情况下,判断来自该第二设备的数据版本号与该第一设备的数据版本号是否相同,如果相同,则确定数据同步成功,如果不相同,则确定数据同步失败。
[0041]优选的,在数据同步的是数据库数据的情况下,该校验信息包括:该第二设备对数据库中的预定表中的部分或全部记录进行计算得到的校验和,该判断模块还用于对本地存储的与该预定表对应的表中对应的记录进行计算得到该第一设备的校验和,判断该第二设备的校验和与该第一设备的校验和是否相同,如果相同,确定数据同步成功,如果不相同,则确定数据同步失败。
[0042]下面结合优选实施例来对本发明进行说明。
[0043]图3是根据本发明优选实施例的内存数据库数据检查和同步的结构图,如图3所示,包括:启动策略管理模块32,数据检查模块34,数据分发模块36,下面对各个模块进行说明。
[0044]启动策略管理模块32:负责确保此检查机制在系统空闲时间启动,主要包括CPU、内存、网口带宽以及磁盘1空闲阈值的配置,这四类资源占用率的统计,以及人工任务触发的执行(实现了上述启动模块的功能)。
[0045]数据检查模块34:负责管理待检查表的注册,数据表记录的校验和计算,校验和数据的收发以及主备间、多模块间校验和检查(实现了上述判断模块24的功能);
[0046]数据分发模块36:负责把单个表的记录分发到指定接收端,接收端负责接收数据并更新到内存表中,发送端负责从表中打包数据发送到接收端(实现了上述同步模块26的功能)。
[0047]图4是根据本发明优选实施例的数据检查和同步的流程图,如图4所示,数据接收端用Rx端表示,数据发送端用Tx表示,包括步骤如下:
[0048]步骤S402,上电时Tx端和Rx端分别把所有需要做定时校验的表注册到校验管理模块;
[0049]步骤S404,Tx端定时执行启动策略的判断,并通知Rx端做启动策略的判断,当符合策略或者用户手工触发启动时,发消息到Rx端,启动此数据检查机制;
[0050]步骤S406,Rx端把本机的数据库数据版本号发往Tx端;
[0051]步骤S408,Tx端收到Rx端发来的数据版本号,与本机的数据版本号比较,如果版本号不一致,则触发数据常规同步流程进行数据同步,如果版本号一致,则发给Rx端开始进行数据检查的消息;
[0052]步骤S410, Tx端遍历所有已注册的表,对每个表的记录做校验和计算,并存储在表记录校验数据区;
[0053]步骤S412,Rx端收到Tx端发来的进行数据检查的消息,开始遍历所有已注册表,对每个表的记录做校验和计算,并把表以及校验和信息发往Tx端;
[0054]步骤S414,Tx端收到Rx端发来的校验和信息与表记录校验区数据比较,如果一致结束本次检查,如果不一致则将表逐个打包发往Rx端;
[0055]步骤S416,Rx端收到Tx端发来的表记录数据和校验和信息,进行数据校验,如果一致,则更新到内存表中,并通知Tx端继续下一个表的发送;如果不一致则通知Tx端重发该表;
[0056]步骤S418,Tx端发完所有不一致的表记录后通知Rx端本次检查结束,结束本次检查流程。
[0057]图5是根据本发明优选实施例的内存数据库同步数据校验功能模块拓扑结构图,如图5所示,启动策略管理用于确保在系统资源空闲的情况下启动该数据检查机制;数据检查模块用于检查数据发送端和数据接收端相关数据表记录内存数据是否一致,对于不一致的数据,通过数据分发模块进行分发,确保数据的正确性。
[0058]图6是根据本发明优选实施例的内存数据库同步数据校验交互图,如图6所示,包括如下步骤:
[0059]步骤S602,注册待检查的表,主要注册变化不大的配置表,这类表长期不变,如果出现错误不易发现;
[0060]步骤S604,当用户触发启动检查机制或者当前系统资源符合空闲的策略,则启动此检查机制;
[0061]步骤S606,接收端请求校验数据版本号,如果版本号不一致则说明数据发生了变化,触发常规同步流程进行数据同步;如果数据版本号一致,则说明目前接收端和发送端的数据应该是一致的,此时做表记录校验;
[0062]步骤S608,如果校验数据是一致的则结束本次检查,如果不一致,则把不一致的表记录发送到接收端,发送表记录时带上该表的校验和数据用于接收端校验。
[0063]步骤S610,接收端收到记录后进行数据校验,校验不通过则通知发送端重发,校验通过则把该记录更新到表内存中。
[0064]本优选实施例提供了一种利用主备和多模块间内存块定期做校验和检查的机制来确保数据的正确性。在系统资源比较空闲的情况下利用校验和机制对数据库内存进行检查:由于内存数据库为了快速响应数据访问,把所有记录都存放在内存中,而且这些数据集中存放在一个连续的内存数据区域中,每个表的记录也是连续存放。每个表的记录做校验和检查,在主备和多模块间数据同步完成的情况下,备机和其它模块定时发送校验和数据到I号模块主用侧,主用侧判断接收端的校验和与本机表记录校验和是否一致,如果不一致则触发数据向指定接收端同步。
[0065]本优选实施例是一种内存数据库同步的保护机制,因为有资源空闲检查策略和用户手工触发的机制,在不影响业务且合理利用系统资源的情况下保证了内存数据库数据的正确性和可靠性。
[0066]显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
[0067]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种数据同步方法,其特征在于,包括: 在第一设备向第二设备进行数据同步完成后,所述第一设备接收所述第二设备发送的校验信息,其中,所述校验信息用于确定所述数据同步是否成功; 所述第一设备至少根据所述校验信息判断所述数据同步是否成功; 在所述数据同步失败的情况下,所述第一设备向所述第二设备进行数据同步。
2.根据权利要求1所述的方法,其特征在于, 在所述第一设备和/或所述第二设备本地空闲的设备资源超过阈值的情况下,启动所述数据同步方法;或者, 接收到启动命令,启动所述数据同步方法。
3.根据权利要求2所述的方法,其特征在于,所述设备包括以下至少之一:处理器资源、内存资源、带宽资源、1资源。
4.根据权利要求1至3中任一项所述的方法,其特征在于, 在所述校验信息包括数据版本号的情况下,所述第一设备根据所述校验信息判断所述数据同步是否成功包括: 所述第一设备判断来自所述第二设备的数据版本号与所述第一设备的数据版本号是否相同,如果相同,则确定数据同步成功,如果不相同,则确定数据同步失败。
5.根据权利要求1至3中任一项所述的方法,其特征在于, 在数据同步的是数据库数据的情况下,所述校验信息包括:所述第二设备对数据库中的预定表中的部分或全部记录进行计算得到的校验和,所述第一设备根据所述校验信息判断所述数据同步是否成功包括: 所述第一设备对本地存储的与所述预定表对应的表中对应的记录进行计算得到所述第一设备的校验和; 所述第一设备判断所述第二设备的校验和与所述第一设备的校验和是否相同,如果相同,确定数据同步成功,如果不相同,则确定数据同步失败。
6.一种数据同步装置,其特征在于,位于第一设备中,其特征在于,包括: 接收模块,用于在第一设备向第二设备进行数据同步完成后,接收所述第二设备发送的校验信息,其中,所述校验信息用于确定所述数据同步是否成功; 判断模块,用于至少根据所述校验信息判断所述数据同步是否成功; 同步模块,用于在所述数据同步失败的情况下,向所述第二设备进行数据同步。
7.根据权利要求6所述的装置,其特征在于,还包括: 启动模块,用于在所述第一设备和/或所述第二设备本地空闲的设备资源超过阈值的情况下,启动所述数据同步装置;或者,用于接收到启动命令,启动所述数据同步装置。
8.根据权利要求7所述的装置,其特征在于,所述设备资源包括以下至少之一:处理器资源、内存资源、带宽资源、输入输出1资源。
9.根据权利要求6至8中任一项所述的装置,其特征在于, 所述判断模块还用于在所述校验信息包括数据版本号的情况下,判断来自所述第二设备的数据版本号与所述第一设备的数据版本号是否相同,如果相同,则确定数据同步成功,如果不相同,则确定数据同步失败。
10.根据权利要求6至8中任一项所述的装置,其特征在于, 在数据同步的是数据库数据的情况下,所述校验信息包括:所述第二设备对数据库中的预定表中的部分或全部记录进行计算得到的校验和,所述判断模块还用于对本地存储的与所述预定表对应的表中对应的记录进行计算得到所述第一设备的校验和,判断所述第二设备的校验和与所述第一设备的校验和是否相同,如果相同,在确定数据同步成功,如果不相同,则确定数据同步失败。
【文档编号】H04L29/08GK104426923SQ201310367360
【公开日】2015年3月18日 申请日期:2013年8月21日 优先权日:2013年8月21日
【发明者】王奎, 张广军, 宋劼明 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1