一种数据库同步方法、服务器及系统技术方案

技术编号:10878071 阅读:83 留言:0更新日期:2015-01-08 00:27
本发明专利技术实施例公开了一种数据库同步方法,包括:接收从服务器的同步请求;同步请求包括业务数据标识,参照时间;根据同步请求过滤历史操作数据库中的全部历史操作数据,得到同步请求对应的第一历史操作数据;第一历史操作数据为业务数据标识对应的晚于所述参照时间的历史操作数据;按操作时间先后,将第一历史操作数据中的第一时刻的历史操作数据合并到第一历史操作数据中的第二时刻的历史操作数据来得到同步数据;第一时刻晚于第二时刻;返回同步数据至从服务器。采用本发明专利技术,可减少主服务器对从服务器的同步操作,可缩小同步操作时的数据传输量,从而提高同步效率,节约网络资源。

【技术实现步骤摘要】
一种数据库同步方法、服务器及系统
本专利技术涉及数据库领域,尤其涉及一种数据库同步方法、服务器及系统。
技术介绍
数据库可视为存储电子文件的处所,用户可以对文件中的数据进行新增、截取、更新、删除等操作。随着信息技术的发展,数据库的同步越来越重要。现有的数据库同步技术有数据库日志同步方法,该数据库日志同步方法通过监听源数据库的日志,来捕获源数据库的数据变化信息,从而实现源数据库和目标数据库的同步;现有的数据库同步技术还有基于文件的数据库同步方法,该基于文件的数据库同步方法以文件方式从源端数据库向目标端数据库进行同步。但是,由于各个从服务器需要的数据不同,同步的时候,主服务器需要根据条件筛选,同时,各个从服务器都部署在不同的网络中,上述现有的数据库同步技术造成主服务器进行频繁的同步操作,同步操作中传输的数据量大。
技术实现思路
本专利技术实施例所要解决的技术问题是提供一种数据库同步方法及系统,可减少主服务器对从服务器的同步操作,可缩小同步操作时的数据传输量,从而提高同步效率,节约网络资源。为解决上述问题,本专利技术的技术方案为:本专利技术实施例提供了一种数据库同步方法,该方法包括两个方面的内容。其中一个方面的内容为主服务器侧的数据库同步方法,包括:接收从服务器的同步请求;所述同步请求包括业务数据标识,参照时间;根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求中的业务数据标识对应的第一历史操作数据;所述第一历史操作数据为所述业务数据标识对应的晚于所述参照时间的历史操作数据;按操作时间先后,将所述第一历史操作数据中的第一时刻的历史操作数据合并到所述第一历史操作数据中的第二时刻的历史操作数据来得到同步数据;所述第一时刻晚于所述第二时刻;返回所述同步数据至所述从服务器。具体的,所述将所述第一历史操作数据中的第一时刻的历史操作数据合并到所述第一历史操作数据中的第二时刻的历史操作数据来得到同步数据包括:按操作时间先后,从后往前以迭代的方式将所述第一历史操作数据中的历史操作数据进行合并来得到同步数据。具体的,所述根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求中的业务数据标识对应的第一历史操作数据包括:根据所述参照时间在所述全部历史操作数据中过滤出晚于所述参照时间的历史操作数据;根据所述业务数据标识在所述晚于所述参照时间的历史操作数据中过滤出所述业务数据标识对应的晚于所述参照时间的历史操作数据为所述第一历史操作数据。具体的,所述业务数据标识包括多个子业务数据标识;所述将所述第一历史操作数据中的第一时刻的历史操作数据合并到所述第一历史操作数据中的第二时刻的历史操作数据来得到同步数据包括:将所述第一历史操作数据按所述子业务数据标识分类;按操作时间先后将同一类第一历史操作数据中的所述第一时刻的历史操作数据合并到所述同一类第一历史操作数据中的所述第二时刻的历史操作数据中来分别得到各类第一历史操作数据的最终数据;打包所述各类第一历史操作数据的最终数据为所述同步数据。具体的,在所述返回所述同步数据至所述从服务器之前,如果所述同步数据中包含附件信息时,则为所述附件信息对应的附件生成下载地址,并返回所述下载地址至所述从服务器。具体的,在所述按操作时间先后将同一类第一历史操作数据中的所述第一时刻的历史操作数据合并到所述同一类第一历史操作数据中的所述第二时刻的历史操作数据中时,如果所述同一类第一历史操作数据中的所述第一时刻的历史操作数据与所述第二时刻的历史操作数据对应相同的字段,则将所述第一时刻的历史操作数据对应的操作信息覆盖所述第二时刻的历史操作数据对应的操作信息。具体的,所述打包所述各类第一历史操作数据的最终数据为所述同步数据包括:按操作时间的先后顺序组织所述各类第一历史操作数据的最终数据形成所述同步数据的数据包。具体的,在所述返回所述下载地址至所述从服务器之后,包括:接收所述从服务器的附件下载请求;发送所述下载地址对应的附件至所述从服务器。具体的,所述历史操作数据对应的操作信息包括历史操作数据对应的操作内容和历史操作数据对应的操作动作;将所述第一时刻的历史操作数据对应的操作信息覆盖所述第二时刻的历史操作数据对应的操作信息包括:将所述第一时刻的历史操作数据对应的操作内容覆盖所述第二时刻的历史操作数据对应的操作内容;将所述第一时刻的历史操作数据对应的操作动作覆盖所述第二时刻的历史操作数据对应的操作动作。其中另一个方面的内容为从服务器侧的数据库同步方法,包括:发送同步请求至主服务器;所述同步请求包括业务数据标识,参照时间;接收主服务器发送的同步数据;所述同步数据为晚于所述参照时间的所述业务数据标识对应的历史操作数据;根据所述同步数据更新本地数据库。具体的,所述根据所述同步数据更新本地数据库包括:在所述本地数据库找到所述同步数据中的历史操作数据对应的业务数据;根据所述同步数据中的历史操作数据对应的操作动作和历史操作数据对应的操作内容来更新所述历史操作数据对应的业务数据。具体的,在所述根据所述同步数据更新本地数据库之后,记录所述更新完成的时间;所述更新完成的时间用作下一个同步周期的参照时间。具体的,在所述接收主服务器发送的同步数据之后,如果所述同步数据中包含附件的下载地址,根据所述下载地址发送下载请求至所述主服务器;从所述主服务器下载所述下载地址对应的附件。具体的,所述根据所述同步数据中的历史操作数据对应的操作动作和历史操作数据对应的操作内容来更新所述历史操作数据对应的业务数据包括:如果所述同步数据中的历史操作数据对应的操作动作为删除动作,则将所述历史操作数据对应的业务数据删除;或如果所述同步数据中的历史操作数据对应的操作动作为添加动作,则将所述历史操作数据对应的字段添加到所述历史操作数据对应的业务数据中;或如果所述同步数据中的历史操作数据对应的操作动作为修改动作,则将所述历史操作数据对应的字段覆盖所述历史操作数据对应的业务数据中的所述字段。本专利技术实施例提供了一种数据库同步的主服务器,所述主服务器包括:同步请求接收模块,用于接收从服务器的同步请求;所述同步请求包括业务数据标识,参照时间;过滤模块,用于根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求中的业务数据标识对应的第一历史操作数据;所述第一历史操作数据为所述业务数据标识对应的晚于所述参照时间的历史操作数据;合并模块,用于按操作时间先后,将所述第一历史操作数据中的第一时刻的历史操作数据合并到所述第一历史操作数据中的第二时刻的历史操作数据来得到同步数据;所述第一时刻晚于所述第二时刻;同步数据发送模块,用于返回所述同步数据至所述从服务器。具体的,所述合并模块具体用于按操作时间先后,从后往前以迭代的方式将所述第一历史操作数据中的历史操作数据进行合并来得到同步数据。具体的,所述过滤模块包括:第一过滤模块,用于根据所述参照时间在所述全部历史操作数据中过滤出晚于所述参照时间的历史操作数据;第二过滤模块,用于根据所述业务数据标识在所述晚于所述参照时间的历史操作数据中过滤出所述业务数据标识对应的晚于所述参照时间的历史操作数据为所述第一历史操作数据。具体的,所述业务数据标识包括多个子业务数据标识;所述合并模块包括:分类模块,用于将所述第一历史本文档来自技高网...

【技术保护点】
一种数据库同步方法,其特征在于,包括:接收从服务器的同步请求;所述同步请求包括业务数据标识,参照时间;根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求对应的第一历史操作数据;所述第一历史操作数据为业务数据标识对应的晚于所述参照时间的历史操作数据;按操作时间先后,将所述第一历史操作数据中的第一时刻的历史操作数据合并到所述第一历史操作数据中的第二时刻的历史操作数据来得到同步数据;所述第一时刻晚于所述第二时刻;返回所述同步数据至所述从服务器。

【技术特征摘要】
1.一种数据库同步方法,其特征在于,包括:接收从服务器的同步请求;所述同步请求包括业务数据标识,参照时间;所述业务数据标识包括多个子业务数据标识;根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求对应的第一历史操作数据;所述第一历史操作数据为业务数据标识对应的晚于所述参照时间的历史操作数据;将所述第一历史操作数据按所述子业务数据标识分类;按操作时间先后将同一类第一历史操作数据中的第一时刻的历史操作数据合并到所述同一类第一历史操作数据中的第二时刻的历史操作数据中来分别得到各类第一历史操作数据的最终数据;打包所述各类第一历史操作数据的最终数据为所述同步数据;所述第一时刻晚于所述第二时刻;返回所述同步数据至所述从服务器;其中,所述历史操作数据包括:对业务数据进行的操作和所述操作的内容。2.如权利要求1所述的方法,其特征在于,所述按操作时间先后,将所述第一历史操作数据中的第一时刻的历史操作数据合并到所述第一历史操作数据中的第二时刻的历史操作数据来得到同步数据包括:按操作时间先后,从后往前以迭代的方式将所述第一历史操作数据中的历史操作数据进行合并来得到同步数据。3.如权利要求1所述的方法,其特征在于,所述根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求对应的第一历史操作数据包括:根据所述参照时间在所述全部历史操作数据中过滤出晚于所述参照时间的历史操作数据;根据所述业务数据标识在所述晚于所述参照时间的历史操作数据中过滤出所述业务数据标识对应的晚于所述参照时间的历史操作数据为所述第一历史操作数据。4.如权利要求1所述的方法,其特征在于,在所述返回所述同步数据至所述从服务器之前,如果所述同步数据中包含附件信息时,则为所述附件信息对应的附件生成下载地址,并返回所述下载地址至所述从服务器。5.如权利要求1所述的方法,其特征在于,在所述按操作时间先后将同一类第一历史操作数据中的所述第一时刻的历史操作数据合并到所述同一类第一历史操作数据中的所述第二时刻的历史操作数据中时,如果所述同一类第一历史操作数据中的所述第一时刻的历史操作数据与所述第二时刻的历史操作数据对应相同的字段,则将所述第一时刻的历史操作数据对应的操作信息覆盖所述第二时刻的历史操作数据对应的操作信息。6.如权利要求1所述的方法,其特征在于,所述打包所述各类第一历史操作数据的最终数据为所述同步数据包括:按操作时间的先后顺序组织所述各类第一历史操作数据的最终数据形成所述同步数据的数据包。7.如权利要求4所述的方法,其特征在于,在所述返回所述下载地址至所述从服务器之后,包括:接收所述从服务器的附件下载请求;发送所述下载地址对应的附件至所述从服务器。8.如权利要求5所述的方法,其特征在于,所述历史操作数据对应的操作信息包括历史操作数据对应的操作内容和历史操作数据对应的操作动作;将所述第一时刻的历史操作数据对应的操作信息覆盖所述第二时刻的历史操作数据对应的操作信息包括:将所述第一时刻的历史操作数据对应的操作内容覆盖所述第二时刻的历史操作数据对应的操作内容;将所述第一时刻的历史操作数据对应的操作动作覆盖所述第二时刻的历史操作数据对应的操作动作。9.一种数据库同步方法,其特征在于,包括:发送同步请求至主服务器所述同步请求包括业务数据标识,参照时间;所述业务数据标识包括多个子业务数据标识;接收主服务器发送的同步数据;所述同步数据为各类第一历史操作数据的最终数据打包得到,所述第一历史操作数据被按所述子业务数据标识分类;所述各类第一历史操作数据的最终数据为按操作时间先后将同一类所述第一历史操作数据中的第一时刻的历史操作数据合并到所述同一类第一历史操作数据中的第二时刻的历史操作数据中来分别得到;所述第一历史操作数据为业务数据标识对应的晚于所述参照时间的历史操作数据;所述第一时刻晚于所述第二时刻;根据所述同步数据更新本地数据库。10.如权利要求9所述的方法,其特征在于,所述根据所述同步数据更新本地数据库包括:在所述本地数据库找到所述同步数据中的历史操作数据对应的业务数据;根据所述同步数据中的历史操作数据对应的操作动作和历史操作数据对应的操作内容来更新所述历史操作数据对应的业务数据。11.如权利要求9所述的方法,其特征在于,在所述根据所述同步数据更新本地数据库之后,记录所述更新完成的时间;所述更新完成的时间用作下一个同步周期的参照时间。12.如权利要求9所述的方法,其特征在于,在所述接收主服务器发送的同步数据之后,如果所述同步数据中包含附件的下载地址,根据所述下载地址发送下载请求至所述主服务器;从所述主服务器下载所述下载地址对应的附件。13.如权利要求10所述的方法,其特征在于,所述根据所述同步数据中的历史操作数据对应的操作动作和历史操作数据对应的操作内容来更新所述历史操作数据对应的业务数据包括:如果所述同步数据中的历史操作数据对应的操作动作为删除动作,则将所述历史操作数据对应的业务数据删除;或如果所述同步数据中的历史操作数据对应的操作动作为添加动作,则将所述历史操作数据对应的字段添加到所述历史操作数据对应的业务数据中;或如果所述同步数据中的历史操作数据对应的操作动作为修改动作,则将所述历史操作数据对应的字段覆盖所述历史操作数据对应的业务数据中的所述字段。14.一种数据库同步的主服务器,其特征在于,包括:同步请求接收模块,用于接收从服务器的同步请求;所述同步请求包括业务数据标识,参照时间;所述业务数据标识包括多个子业务数据标识;过滤模块,用于根据所述同步请求过滤历史操作数据库中的全部历史操作数据,得到所述同步请求中的业务数据标识对应的第一历史操作数据;所...

【专利技术属性】
技术研发人员:邹强
申请(专利权)人:深圳创维数字技术有限公司深圳市创维软件有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1