非关系型数据库同步系统及双写同步方法.pdf

上传人:r7 文档编号:1570209 上传时间:2018-06-25 格式:PDF 页数:13 大小:515.86KB
返回 下载 相关 举报
摘要
申请专利号:

CN201110353238.9

申请日:

2011.11.09

公开号:

CN103106200A

公开日:

2013.05.15

当前法律状态:

授权

有效性:

有权

法律详情:

授权|||专利申请权的转移IPC(主分类):G06F 17/30变更事项:申请人变更前权利人:上海盛霄云计算技术有限公司变更后权利人:上海盛大网络发展有限公司变更事项:地址变更前权利人:201203 上海市浦东新区上海市张江高科技园区郭守敬路356号3幢124室变更后权利人:201203 上海市浦东新区张衡路666号1号楼登记生效日:20140611|||实质审查的生效IPC(主分类):G06F 17/30申请日:20111109|||公开

IPC分类号:

G06F17/30

主分类号:

G06F17/30

申请人:

上海盛霄云计算技术有限公司

发明人:

段如冰; 郭理靖; 袁岳峰

地址:

201203 上海市浦东新区张江高科技园区郭守敬路356号3幢124室

优先权:

专利代理机构:

上海思微知识产权代理事务所(普通合伙) 31237

代理人:

菅秀君

PDF下载: PDF下载
内容摘要

本发明提供一种非关系型数据库同步系统及双写同步方法,通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。

权利要求书

权利要求书一种非关系型数据库同步系统,其特征在于,包括:
本地非关系型数据库,用于保存本地业务所需数据以及产生本地数据日志;
远程非关系型数据库,用于保存远程业务所需数据以及产生远程数据日志;
本地同步管理器,用于抽取所述远程数据日志并产生本地数字签名,以及将抽取的远程数据日志与本地数据日志对比以对所述本地非关系型数据库的数据进行更新;
远程同步管理器,用于抽取所述本地数据日志并产生远程数字签名,以及将抽取的本地数据日志与远程数据日志对比以对所述远程非关系型数据库的数据进行更新。
如权利要求1所述的非关系型数据库同步系统,其特征在于,所述非关系型数据库同步系统还包括:
本地同步数据库,用于保存所述本地非关系型数据库产生的本地数据日志、本地同步管理器所抽取的远程数据日志以及其本地数字签名;
远程同步数据库,用于保存所述远程非关系型数据库产生的远程数据日志、远程同步管理器所抽取的本地数据日志以及其远程数字签名。
如权利要求1或2所述的非关系型数据库同步系统,其特征在于,所述本地非关系型数据库的本地数据日志为按时间阶段依次产生的本地阶段性日志;所述远程非关系型数据库的远程数据日志为与所述本地阶段性日志所在的相同时间阶段产生的远程阶段性日志。
如权利要求1所述的非关系型数据库同步系统,其特征在于,所述本地同步管理器包括:
本地数据抽取模块,用于抽取所述远程非关系型数据库产生的远程数据日志;
本地数据处理模块,用于为抽取出的远程数据日志产生本地数字签名,并将所述抽取出的远程数据日志及其本地数字签名存入所述本地同步数据库;
本地数据同步模块,用于对比所述抽取出的远程数据日志与所述本地数据日志,将所述远程非关系型数据库的数据同步到本地非关系型数据库中,并生成本地同步执行记录。
如权利要求4所述的非关系型数据库同步系统,其特征在于,所述本地数据处理模块还用于在完成所述远程非关系型数据库到所述本地非关系型数据库的数据同步后,清理所述本地同步数据库中存储的本地数据日志、远程数据日志及其本地数字签名。
如权利要求4所述的非关系型数据库同步系统,其特征在于,所述本地同步管理器还包括:
本地数据过滤模块,用于对所述本地同步数据库中存储的远程数据日志进行识别,过滤掉重复的远程数据日志,以减少所述本地数据同步模块的重复数据同步操作;
本地数据重放模块,用于查询所述本地同步数据库中存储的远程数据日志是否已经被执行,若是,则跳过此条远程数据日志;若否,则重新执行该条远程数据日志,并记录到所述本地同步执行记录中。
如权利要求1所述的非关系型数据库同步系统,其特征在于,所述远程同步管理器包括:
远程数据抽取模块,用于抽取所述本地非关系型数据库产生的本地数据日志;
远程数据处理模块,用于为抽取出的本地数据日志产生远程数字签名,并将所述抽取出的本地数据日志及其远程数字签名存入所述远程同步数据库;
远程数据同步模块,用于对比所述抽取出的本地数据日志与所述远程数据日志,将所述本地非关系型数据库的数据同步到远程非关系型数据库中,并生成远程同步执行记录。
如权利要求7所述的非关系型数据库同步系统,其特征在于,所述远程数据处理模块还用于在完成所述本地非关系型数据库到所述远程非关系型数据库的数据同步后,清理所述远程同步数据库中存储的远程数据日志、本地数据日志及其远程数字签名。
如权利要求7所述的非关系型数据库同步系统,其特征在于,所述远程同步管理器还包括:
远程数据过滤模块,用于对所述远程同步数据库中存储的本地数据日志进行识别,过滤掉重复的本地数据日志,以减少所述远程数据同步模块的重复数据同步操作;
远程数据重放模块,用于查询所述远程同步数据库中存储的本地数据日志是否已经被执行,若是,则跳过此条本地数据日志;若否,则重新执行该条本地数据日志,并记录到所述远程同步执行记录中。
一种应用权利要求1至9中任一项所述的非关系型数据库同步系统的双写同步方法,其特征在于,包括:
所述本地非关系型数据库保存本地业务所需数据以及产生本地数据日志;
所述远程非关系型数据库保存远程业务所需数据以及产生远程数据日志;
所述本地同步管理器抽取所述远程数据日志并产生本地数字签名,将抽取的远程数据日志与本地数据日志对比,同步所述远程非关系型数据库的数据到所述本地非关系型数据库中,所述本地非关系型数据库产生新的本地数据日志;
所述远程同步管理器抽取所述本地数据日志并产生远程数字签名,将抽取的本地数据日志与远程数据日志对比,同步所述本地非关系型数据库的数据到所述远程非关系型数据库中,所述远程非关系型数据库产生新的远程数据日志。

说明书

说明书非关系型数据库同步系统及双写同步方法
技术领域
本发明涉及数据库同步领域,尤其涉及一种非关系型数据库同步系统及双写同步方法。
背景技术
互联网web2.0网站的兴起,对数据库提出了更高的需求,例如:对数据库高并发读写的需求(High performance);对海量数据的高效率存储和访问的需求(Huge Storage);对数据库的高可扩展性和高可用性的需求(High Scalability & High Availability)。而传统的关系数据库已经不能满足互联网web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站的这些需求。
非关系型数据库是泛指不同于关系型传统数据库的一类数据库,在此类数据库中存储的数据没有固定的模式,通常没有联合(join)操作,可以满足上述web2.0网站对数据库的新需求,现在成了一个极其热门的新领域。但同时也存在很多新的设计的难点,例如:
1.由于远程间网络的不稳定性,需要在远程网络两端同时安装两套非关系型数据库系统;
2.如何对非关系型数据库系统进行远程双写同步以保持数据一致性成为一个很重要的问题,双写同步是指在对两个或多个数据库同时进行插入和修改数据时,保持多个数据库的数据一致,而传统的非关系型数据库系统的同步机制,包括主从同步和副本集技术,已不能再满足需要。
因此,需要一种非关系型数据库同步系统及方法,以解决在远程网络环境中非关系型数据库无法进行双写同步的问题。
发明内容
本发明的目的在于提供一种非关系型数据库同步系统及双写同步方法,以解决在远程网络环境中非关系型数据库无法进行双写同步的问题。
为解决上述问题,本发明提供一种非关系型数据库同步系统,包括:
本地非关系型数据库,用于保存本地业务所需数据以及产生本地数据日志;
远程非关系型数据库,用于保存远程业务所需数据以及产生远程数据日志;
本地同步管理器,用于抽取所述远程数据日志并产生本地数字签名,以及将抽取的远程数据日志与本地数据日志对比以对本地非关系型数据库的数据进行更新;
远程同步管理器,用于抽取所述本地数据日志并产生远程数字签名,以及将抽取的本地数据日志与远程数据日志对比以对远程非关系型数据库的数据进行更新。
进一步的,所述非关系型数据库同步系统还包括:
本地同步数据库,用于保存所述本地非关系型数据库产生的本地数据日志、本地同步管理器所抽取的远程数据日志以及其本地数字签名;
远程同步数据库,用于保存所述远程非关系型数据库产生的远程数据日志、远程同步管理器所抽取的本地数据日志以及其远程数字签名。
进一步的,所述本地非关系型数据库的本地数据日志为按时间阶段依次产生的本地阶段性日志;所述远程非关系型数据库的远程数据日志为与所述本地阶段性日志所在的相同时间阶段产生的远程阶段性日志。
进一步的,所述本地同步管理器包括:
本地数据抽取模块,用于抽取所述远程非关系型数据库产生的远程数据日志;
本地数据处理模块,用于为抽取出的远程数据日志产生本地数字签名,并将所述抽取出的远程数据日志及其本地数字签名存入所述本地同步数据库;
本地数据同步模块,用于对比所述抽取出的远程数据日志与所述本地数据日志,将所述远程非关系型数据库的数据同步到本地非关系型数据库中,并生成本地同步执行记录。
进一步的,所述本地数据处理模块还用于在完成所述远程非关系型数据库到所述本地非关系型数据库的数据同步后,清理所述本地同步数据库中存储的本地数据日志、远程数据日志及其本地数字签名。
进一步的,所述本地同步管理器还包括:
本地数据过滤模块,用于对所述本地同步数据库中存储的远程数据日志进行识别,过滤掉重复的远程数据日志,以减少所述本地数据同步模块的重复数据同步操作;
本地数据重放模块,用于查询所述本地同步数据库中存储的远程数据日志是否已经被执行,若是,则跳过此条远程数据日志;若否,则重新执行该条远程数据日志,并记录到所述本地同步执行记录中。
进一步的,所述远程同步管理器包括:
远程数据抽取模块,用于抽取所述本地非关系型数据库产生的本地数据日志;
远程数据处理模块,用于为抽取出的本地数据日志产生远程数字签名,并将所述抽取出的本地数据日志及其远程数字签名存入所述远程同步数据库;
远程数据同步模块,用于对比所述抽取出的本地数据日志与所述远程数据日志,将所述本地非关系型数据库的数据同步到远程非关系型数据库中,并生成远程同步执行记录。
进一步的,所述远程数据处理模块还用于在完成所述本地非关系型数据库到所述远程非关系型数据库的数据同步后,清理所述远程同步数据库中存储的远程数据日志、本地数据日志及其远程数字签名。
进一步的,所述远程同步管理器还包括:
远程数据过滤模块,用于对所述远程同步数据库中存储的本地数据日志进行识别,过滤掉重复的本地数据日志,以减少所述远程数据同步模块的重复数据同步操作;
远程数据重放模块,用于查询所述远程同步数据库中存储的本地数据日志是否已经被执行,若是,则跳过此条本地数据日志;若否,则重新执行该条本地数据日志,并记录到所述远程同步执行记录中。
相应的,本发明还提供一种应用上述非关系型数据库同步系统的双写同步方法,包括:
所述本地非关系型数据库保存本地业务所需数据以及产生本地数据日志;
所述远程非关系型数据库保存远程业务所需数据以及产生远程数据日志;
所述本地同步管理器抽取所述远程数据日志并产生本地数字签名,将抽取的远程数据日志与本地数据日志对比,同步所述远程非关系型数据库的数据到所述本地非关系型数据库中,所述本地非关系型数据库产生新的本地数据日志;
所述远程同步管理器抽取所述本地数据日志并产生远程数字签名,将抽取的本地数据日志与远程数据日志对比,同步所述本地非关系型数据库的数据到所述远程非关系型数据库中,所述远程非关系型数据库产生新的远程数据日志。
进一步的,保存所述本地非关系型数据库产生的本地数据日志、本地同步管理器所抽取的远程数据日志及其本地数字签名到一本地同步数据库中;
保存所述远程非关系型数据库产生的远程数据日志、远程同步管理器所抽取的本地数据日志其远程数字签名到一远程同步数据库。
与现有技术相比,本发明提供的非关系型数据库同步系统及双写同步方法,通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。
附图说明
图1是本发明实施例一的非关系型数据库同步系统的架构示意图;
图2是本发明实施例一的本地同步管理器的具体结构及其与本地同步数据库的连接示意图;
图3是本发明实施例一的远程同步管理器的具体结构及其与远程同步数据库的连接示意图;
图4是本发明实施例二的基于非关系型数据库同步系统的双写同步方法流程图;
图5是本发明实施例二的非关系型数据库同步系统在双写同步时的日志示意图。
具体实施方式
以下结合附图和具体实施例对本发明提出的非关系型数据库同步系统及双写同步方法作进一步详细说明。
实施例一
如图1所示,本实施例提供一种非关系型数据库同步系统,包括:
本地非关系型数据库11,用于保存本地10业务所需数据以及产生本地数据日志,其中,所述本地非关系型数据库11的本地数据日志为按时间阶段依次产生的本地阶段性日志;
远程非关系型数据库21,用于保存远程20业务所需数据以及产生远程数据日志,其中,所述远程非关系型数据库21的远程数据日志为与所述本地阶段性日志所在的相同时间阶段产生的远程阶段性日志;
本地同步管理器12,用于抽取所述远程数据日志并产生本地数字签名,以及将抽取的远程数据日志与本地数据日志对比以对本地非关系型数据库11的数据进行更新;
远程同步管理器22,用于抽取所述本地数据日志并产生远程数字签名,以及将抽取的本地数据日志与远程数据日志对比以对远程非关系型数据库21的数据进行更新;
本地同步数据库13,用于保存所述本地非关系型数据库11产生的本地数据日志、本地同步管理器12所抽取的远程数据日志以及其本地数字签名;
远程同步数据库23,用于保存所述远程非关系型数据库21产生的远程数据日志、远程同步管理器22所抽取的本地数据日志及其远程数字签名。
如图2所示,本实施例中,所述本地同步管理器12包括:
本地数据抽取模块121,用于抽取一本地阶段性日志的前一时间阶段所述远程非关系型数据库21产生的远程阶段性日志;
本地数据处理模块122,用于为抽取出的远程阶段性日志产生本地数字签名,并将抽取出的远程阶段性日志及其本地数字签名存入所述本地同步数据库13,还用于在完成所述远程非关系型数据库21到所述本地非关系型数据库11的本时间阶段数据同步后,清理所述本地同步数据库11中存储的本时间阶段以前的本地阶段性日志、远程阶段性日志及其本地数字签名;
本地数据过滤模块123,用于对所述本地同步数据库13中存储的远程阶段性日志进行识别,过滤掉重复的远程阶段性日志,减少所述本地数据同步模块的重复数据同步操作;
本地数据重放模块124,用于查询所述本地同步数据库13中存储的远程阶段性日志是否已经被执行,若是,则跳过此条远程阶段性日志;若否,则重新执行该条远程阶段性日志,并记录到本地数据同步模块125的本地同步执行记录中;
本地数据同步模块125,用于对比所述抽取出的远程阶段性日志与所述本地阶段性日志,将所述远程非关系型数据库21的数据同步到本地非关系型数据库11中,并生成本地同步执行记录。
如图3所示,本实施例中,所述远程同步管理器22包括:
远程数据抽取模块221,抽取一远程阶段性日志的前一时间阶段所述本地非关系型数据11产生的本地阶段性日志;
远程数据处理模块222,用于为抽取出的本地阶段性日志产生远程数字签名,并将抽取出的本地阶段性日志及其远程数字签名存入所述远程同步数据库23,还用于在完成所述本地非关系型数据库11到所述远程非关系型数据库21的本时间阶段数据同步后,清理所述远程同步数据库23中存储的本阶段以前的远程阶段性日志、本地阶段性日志及其远程数字签名;
远程数据过滤模块223,用于对所述远程同步数据库23中存储的的本地阶段性日志进行识别,过滤掉重复的本地阶段性日志,减少所述远程同步数据同步模块的重复数据同步操作;
远程数据重放模块224,用于查询所述远程同步数据库23中存储的本地阶段性日志是否已经被执行,若是,则跳过此条本地阶段性日志;若否,则重新执行该条本地阶段性日志,并记录到远程数据同步模块225产生的远程同步执行记录中;
远程数据同步模块225,用于对比所述抽取出的本地阶段性日志与远程阶段性日志,将所述本地非关系型数据库11的数据同步到远程非关系型数据库21中,并生成远程同步执行记录。
需要说明的是,本地数据处理模块122和远程数据处理模块222可以采用SHA1算法(Secure Hash Algorithm,安全哈希算法)对抽取的远程阶段性日志和本地阶段性日志中去除时间标记外其他部分添加新的key:value(键:值)对以产生本地数字签名和远程数字签名。
综上所述,本实施例提供的非关系型数据库同步系统,可以通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。
实施例二
如图4所示,本实施例提供一种基于本发明的非关系型数据库同步系统的双写同步方法,包括步骤S1至步骤S4,下面结合附图1‑5对本实施例所述的双写同步方法做进一步的详述。
步骤S1,所述本地非关系型数据库保存本地业务所需数据以及产生本地数据日志。
请参考图1和图5,本步骤中,T0‑T1阶段,本地非关系型数据库11产生本地阶段性日志C1。
步骤S2,所述远程非关系型数据库保存远程业务所需数据以及产生远程数据日志。
请参考图1和图5,本步骤中,T0‑T1阶段,远程非关系型数据库21产生远程阶段性日志U1。
步骤S3,所述本地同步管理器抽取所述远程数据日志并产生远程数字签名,将抽取的远程数据日志与本地数据日志对比,同步所述远程非关系型数据库的数据到所述本地非关系型数据库中,所述本地非关系型数据库产生新的本地数据日志。
请参考图1、图2和图5,本步骤中,T1‑T2阶段,本地非关系型数据库11产生本地阶段性日志C2,本地数据抽取模块121抽取步骤S2中T0‑T1阶段的远程阶段性日志U1;本地数据处理模块122为远程阶段性日志U1产生本地数字签名,并将远程阶段性日志U1及其本地数字签名存入所述本地同步数据库13;本地数据同步模块125对比远程阶段性日志U1与本地阶段性日志C2,将所述远程非关系型数据库21的数据同步到本地非关系型数据库11中,并生成本地同步执行记录。
步骤S4,所述远程同步管理器抽取所述本地数据日志并产生本地数字签名,将抽取的本地数据日志与远程数据日志对比,同步所述本地非关系型数据库的数据到所述远程非关系型数据库中,所述远程非关系型数据库产生新的远程数据日志。
请参考图1、图2和图5,本步骤中,T1‑T2阶段,远程非关系型数据库21产生远程阶段性日志U2,远程数据抽取模块221抽取步骤S1中T0‑T1阶段的本地阶段性日志C1;远程数据处理模块222为本地阶段性日志C1产生远程数字签名,并将本地阶段性日志C1及其远程数字签名存入所述远程同步数据库23;远程数据同步模块225对比本地阶段性日志C1与远程阶段性日志U2,将所述本地非关系型数据库11的数据同步到远程非关系型数据库21中,并生成远程同步执行记录。
进一步的,在划分的时间阶段不只仅有T0‑T1‑T2时,在后续时间阶段中,本地非关系型数据库11按时间阶段T2‑T3、T3‑T4、T4‑T5依次产生本地阶段性日志C3、C4、C5、…,远程非关系型数据库21按相同时间阶段依次产生远程阶段性日志U3,U4、U5、…,只要循环执行步骤S3与步骤S4,即可完成所有时间阶段的本地非关系型数据库11与远程非关系型数据库21的双写同步,例如在T2‑T3阶段:
本地非关系型数据库11产生本地阶段性日志C3,本地数据抽取模块121抽取步骤S2中T1‑T2阶段的远程阶段性日志U2;本地数据处理模块122为远程阶段性日志U2产生本地数字签名,并将远程阶段性日志U2及其本地数字签名存入所述本地同步数据库13;本地数据同步模块125对比远程阶段性日志U2与本地阶段性日志C3,将所述远程非关系型数据库21的数据同步到本地非关系型数据库11中,并生成本地同步执行记录;
远程非关系型数据库21产生远程阶段性日志U3,远程数据抽取模块221抽取步骤S1中T1‑T2阶段的本地阶段性日志C2;远程数据处理模块222为本地阶段性日志C2产生远程数字签名,并将本地阶段性日志C2及其远程数字签名存入所述远程同步数据库23;远程数据同步模块225对比本地阶段性日志C2与远程阶段性日志U3,将所述本地非关系型数据库11的数据同步到远程非关系型数据库21中,并生成远程同步执行记录。
其中,由于本地阶段性日志C1在T1‑T2阶段中被同步到远程非关系型数据库21中,所以本地同步数据库13应至少保存本时间阶段在内的前3个时间阶段的本地阶段性日志,例如在T2‑T3阶段时,本地同步数据库13保存本地阶段性日志C1、C2、C3(如图5所示);同样,远程同步数据库23应至少保存本时间阶段在内的前3个时间阶段的远程阶段性日志,例如在T2‑T3阶段时,远程同步数据库13保存远程阶段性日志U1、U2、U3。
进一步的,在循环执行步骤S3和S4的过程中,还可以通过本地数据处理模块122在完成所述远程非关系型数据库21到所述本地非关系型数据库11的本时间阶段的数据同步后,清理所述本地同步数据库11中存储的本时间阶段以前的本地阶段性日志、远程阶段性日志及其本地数字签名;通过远程数据处理模块222在完成所述本地非关系型数据库11到所述远程非关系型数据库21的本时间阶段数据同步后,清理所述远程同步数据库23中存储的本阶段以前的远程阶段性日志、本地阶段性日志及其远程数字签名;如图5所示,在T3‑T4时间阶段,通过本地数据处理模块122删除本地同步数据库13在T1‑T2阶段存储的本地阶段性日志C1、及远程阶段性日志U1及其本地数字签名;通过远程数据处理模块222删除远程同步数据库23在T1‑T2阶段存储的远程阶段性日志U1、本地阶段性日志C1及其本地数字签名;
进一步的,在循环执行步骤S3和S4的过程中,还可以通过本地数据过滤模块123对所述本地同步数据库13中存储的远程阶段性日志进行识别,过滤掉重复的远程阶段性日志;通过本地数据重放模块124查询所述本地同步数据库13中存储的远程阶段性日志是否已经被执行,若是,则跳过此条远程阶段性日志;若否,则重新执行该条远程阶段性日志,并记录到本地数据同步模块125的本地同步执行记录中。
进一步的,在循环执行步骤S3和S4的过程中,还可以通过远程数据过滤模块223对所述远程同步数据库23中存储的本地阶段性日志进行识别,过滤掉重复的本地阶段性日志;通过远程数据重放模块224查询所述远程同步数据库23中存储的本地阶段性日志是否已经被执行,若是,则跳过此条本地阶段性日志;若否,则重新执行该条本地阶段性日志,并记录到远程数据同步模块225产生的远程同步执行记录中。
需要说明的是,在双写同步过程中可能出现多种问题,考虑对以下情况进行异常处理:
1、步骤S3和步骤S4抽取过程中网络中断,或不能建立和对方非关系型数据库的连接时,网络中断后只对已经抽取的数据日志进行处理;
2、步骤S3和步骤S4抽取过程中运行本地/远程同步管理器的主机死机时,该主机重启后,需要本地/远程同步管理器回到以前状态,检查本地/远程同步数据库,如果不空,继续对抽取的数据进行重放操作;如果本地/远程同步数据库为空,继续下一时间阶段的数据同步;
3、长时间网络中断时,本地/远程同步管理器可以合并时间阶段进行一次性数据同步;
4、本地/远程同步管理器单方面完成本地/远程非关系型数据库的数据同步,而远程/本地同步管理器未完成本地/远程非关系型数据库的数据同步时,完成方可继续进行下一时间阶段的数据同步,未完成方需合并从未完成之时间阶段到完成方的前一时间阶段的所有时间阶段进行一次性数据同步以提高双写同步的效率,如本地同步管理器已完成了T0‑T1、T1‑T2、T2‑T3阶段的远程非关系型数据库到本地非关系型数据库的数据同步,而远程同步管理器只完成了T0‑T1阶段的本地非关系型数据库到远程非关系型数据库的数据同步时,那么下一时间阶段,远程同步管理器合并T1‑T2、T2‑T3阶段,一次性完成的T1‑T3阶段的本地非关系型数据库到远程非关系型数据库的数据同步。
综上所述,本发实施例提供的非关系型数据库同步系统的双写方法,通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。
显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

非关系型数据库同步系统及双写同步方法.pdf_第1页
第1页 / 共13页
非关系型数据库同步系统及双写同步方法.pdf_第2页
第2页 / 共13页
非关系型数据库同步系统及双写同步方法.pdf_第3页
第3页 / 共13页
点击查看更多>>
资源描述

《非关系型数据库同步系统及双写同步方法.pdf》由会员分享,可在线阅读,更多相关《非关系型数据库同步系统及双写同步方法.pdf(13页珍藏版)》请在专利查询网上搜索。

1、(10)申请公布号 CN 103106200 A(43)申请公布日 2013.05.15CN103106200A*CN103106200A*(21)申请号 201110353238.9(22)申请日 2011.11.09G06F 17/30(2006.01)(71)申请人上海盛霄云计算技术有限公司地址 201203 上海市浦东新区张江高科技园区郭守敬路356号3幢124室(72)发明人段如冰 郭理靖 袁岳峰(74)专利代理机构上海思微知识产权代理事务所(普通合伙) 31237代理人菅秀君(54) 发明名称非关系型数据库同步系统及双写同步方法(57) 摘要本发明提供一种非关系型数据库同步系统及双。

2、写同步方法,通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。(51)Int.Cl.权利要求书2页 说明书7页 附图3页(19)中华人民共和国国家知识产权局(12)发明专利申请权利要求书2页 说明书7页 附图3页(10)申请公布号 CN 1031。

3、06200 ACN 103106200 A1/2页21.一种非关系型数据库同步系统,其特征在于,包括:本地非关系型数据库,用于保存本地业务所需数据以及产生本地数据日志;远程非关系型数据库,用于保存远程业务所需数据以及产生远程数据日志;本地同步管理器,用于抽取所述远程数据日志并产生本地数字签名,以及将抽取的远程数据日志与本地数据日志对比以对所述本地非关系型数据库的数据进行更新;远程同步管理器,用于抽取所述本地数据日志并产生远程数字签名,以及将抽取的本地数据日志与远程数据日志对比以对所述远程非关系型数据库的数据进行更新。2.如权利要求1所述的非关系型数据库同步系统,其特征在于,所述非关系型数据库同。

4、步系统还包括:本地同步数据库,用于保存所述本地非关系型数据库产生的本地数据日志、本地同步管理器所抽取的远程数据日志以及其本地数字签名;远程同步数据库,用于保存所述远程非关系型数据库产生的远程数据日志、远程同步管理器所抽取的本地数据日志以及其远程数字签名。3.如权利要求1或2所述的非关系型数据库同步系统,其特征在于,所述本地非关系型数据库的本地数据日志为按时间阶段依次产生的本地阶段性日志;所述远程非关系型数据库的远程数据日志为与所述本地阶段性日志所在的相同时间阶段产生的远程阶段性日志。4.如权利要求1所述的非关系型数据库同步系统,其特征在于,所述本地同步管理器包括:本地数据抽取模块,用于抽取所述。

5、远程非关系型数据库产生的远程数据日志;本地数据处理模块,用于为抽取出的远程数据日志产生本地数字签名,并将所述抽取出的远程数据日志及其本地数字签名存入所述本地同步数据库;本地数据同步模块,用于对比所述抽取出的远程数据日志与所述本地数据日志,将所述远程非关系型数据库的数据同步到本地非关系型数据库中,并生成本地同步执行记录。5.如权利要求4所述的非关系型数据库同步系统,其特征在于,所述本地数据处理模块还用于在完成所述远程非关系型数据库到所述本地非关系型数据库的数据同步后,清理所述本地同步数据库中存储的本地数据日志、远程数据日志及其本地数字签名。6.如权利要求4所述的非关系型数据库同步系统,其特征在于。

6、,所述本地同步管理器还包括:本地数据过滤模块,用于对所述本地同步数据库中存储的远程数据日志进行识别,过滤掉重复的远程数据日志,以减少所述本地数据同步模块的重复数据同步操作;本地数据重放模块,用于查询所述本地同步数据库中存储的远程数据日志是否已经被执行,若是,则跳过此条远程数据日志;若否,则重新执行该条远程数据日志,并记录到所述本地同步执行记录中。7.如权利要求1所述的非关系型数据库同步系统,其特征在于,所述远程同步管理器包括:远程数据抽取模块,用于抽取所述本地非关系型数据库产生的本地数据日志;远程数据处理模块,用于为抽取出的本地数据日志产生远程数字签名,并将所述抽取出的本地数据日志及其远程数字。

7、签名存入所述远程同步数据库;远程数据同步模块,用于对比所述抽取出的本地数据日志与所述远程数据日志,将所权 利 要 求 书CN 103106200 A2/2页3述本地非关系型数据库的数据同步到远程非关系型数据库中,并生成远程同步执行记录。8.如权利要求7所述的非关系型数据库同步系统,其特征在于,所述远程数据处理模块还用于在完成所述本地非关系型数据库到所述远程非关系型数据库的数据同步后,清理所述远程同步数据库中存储的远程数据日志、本地数据日志及其远程数字签名。9.如权利要求7所述的非关系型数据库同步系统,其特征在于,所述远程同步管理器还包括:远程数据过滤模块,用于对所述远程同步数据库中存储的本地数。

8、据日志进行识别,过滤掉重复的本地数据日志,以减少所述远程数据同步模块的重复数据同步操作;远程数据重放模块,用于查询所述远程同步数据库中存储的本地数据日志是否已经被执行,若是,则跳过此条本地数据日志;若否,则重新执行该条本地数据日志,并记录到所述远程同步执行记录中。10.一种应用权利要求1至9中任一项所述的非关系型数据库同步系统的双写同步方法,其特征在于,包括:所述本地非关系型数据库保存本地业务所需数据以及产生本地数据日志;所述远程非关系型数据库保存远程业务所需数据以及产生远程数据日志;所述本地同步管理器抽取所述远程数据日志并产生本地数字签名,将抽取的远程数据日志与本地数据日志对比,同步所述远程。

9、非关系型数据库的数据到所述本地非关系型数据库中,所述本地非关系型数据库产生新的本地数据日志;所述远程同步管理器抽取所述本地数据日志并产生远程数字签名,将抽取的本地数据日志与远程数据日志对比,同步所述本地非关系型数据库的数据到所述远程非关系型数据库中,所述远程非关系型数据库产生新的远程数据日志。权 利 要 求 书CN 103106200 A1/7页4非关系型数据库同步系统及双写同步方法技术领域0001 本发明涉及数据库同步领域,尤其涉及一种非关系型数据库同步系统及双写同步方法。背景技术0002 互联网web2.0网站的兴起,对数据库提出了更高的需求,例如:对数据库高并发读写的需求(High pe。

10、rformance);对海量数据的高效率存储和访问的需求(Huge Storage);对数据库的高可扩展性和高可用性的需求(High Scalability & High Availability)。而传统的关系数据库已经不能满足互联网web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站的这些需求。0003 非关系型数据库是泛指不同于关系型传统数据库的一类数据库,在此类数据库中存储的数据没有固定的模式,通常没有联合(join)操作,可以满足上述web2.0网站对数据库的新需求,现在成了一个极其热门的新领域。但同时也存在很多新的设计的难点,例如:0004 1.由于远程间网。

11、络的不稳定性,需要在远程网络两端同时安装两套非关系型数据库系统;0005 2.如何对非关系型数据库系统进行远程双写同步以保持数据一致性成为一个很重要的问题,双写同步是指在对两个或多个数据库同时进行插入和修改数据时,保持多个数据库的数据一致,而传统的非关系型数据库系统的同步机制,包括主从同步和副本集技术,已不能再满足需要。0006 因此,需要一种非关系型数据库同步系统及方法,以解决在远程网络环境中非关系型数据库无法进行双写同步的问题。发明内容0007 本发明的目的在于提供一种非关系型数据库同步系统及双写同步方法,以解决在远程网络环境中非关系型数据库无法进行双写同步的问题。0008 为解决上述问题。

12、,本发明提供一种非关系型数据库同步系统,包括:0009 本地非关系型数据库,用于保存本地业务所需数据以及产生本地数据日志;0010 远程非关系型数据库,用于保存远程业务所需数据以及产生远程数据日志;0011 本地同步管理器,用于抽取所述远程数据日志并产生本地数字签名,以及将抽取的远程数据日志与本地数据日志对比以对本地非关系型数据库的数据进行更新;0012 远程同步管理器,用于抽取所述本地数据日志并产生远程数字签名,以及将抽取的本地数据日志与远程数据日志对比以对远程非关系型数据库的数据进行更新。0013 进一步的,所述非关系型数据库同步系统还包括:0014 本地同步数据库,用于保存所述本地非关系。

13、型数据库产生的本地数据日志、本地同步管理器所抽取的远程数据日志以及其本地数字签名;0015 远程同步数据库,用于保存所述远程非关系型数据库产生的远程数据日志、远程说 明 书CN 103106200 A2/7页5同步管理器所抽取的本地数据日志以及其远程数字签名。0016 进一步的,所述本地非关系型数据库的本地数据日志为按时间阶段依次产生的本地阶段性日志;所述远程非关系型数据库的远程数据日志为与所述本地阶段性日志所在的相同时间阶段产生的远程阶段性日志。0017 进一步的,所述本地同步管理器包括:0018 本地数据抽取模块,用于抽取所述远程非关系型数据库产生的远程数据日志;0019 本地数据处理模块。

14、,用于为抽取出的远程数据日志产生本地数字签名,并将所述抽取出的远程数据日志及其本地数字签名存入所述本地同步数据库;0020 本地数据同步模块,用于对比所述抽取出的远程数据日志与所述本地数据日志,将所述远程非关系型数据库的数据同步到本地非关系型数据库中,并生成本地同步执行记录。0021 进一步的,所述本地数据处理模块还用于在完成所述远程非关系型数据库到所述本地非关系型数据库的数据同步后,清理所述本地同步数据库中存储的本地数据日志、远程数据日志及其本地数字签名。0022 进一步的,所述本地同步管理器还包括:0023 本地数据过滤模块,用于对所述本地同步数据库中存储的远程数据日志进行识别,过滤掉重复。

15、的远程数据日志,以减少所述本地数据同步模块的重复数据同步操作;0024 本地数据重放模块,用于查询所述本地同步数据库中存储的远程数据日志是否已经被执行,若是,则跳过此条远程数据日志;若否,则重新执行该条远程数据日志,并记录到所述本地同步执行记录中。0025 进一步的,所述远程同步管理器包括:0026 远程数据抽取模块,用于抽取所述本地非关系型数据库产生的本地数据日志;0027 远程数据处理模块,用于为抽取出的本地数据日志产生远程数字签名,并将所述抽取出的本地数据日志及其远程数字签名存入所述远程同步数据库;0028 远程数据同步模块,用于对比所述抽取出的本地数据日志与所述远程数据日志,将所述本地。

16、非关系型数据库的数据同步到远程非关系型数据库中,并生成远程同步执行记录。0029 进一步的,所述远程数据处理模块还用于在完成所述本地非关系型数据库到所述远程非关系型数据库的数据同步后,清理所述远程同步数据库中存储的远程数据日志、本地数据日志及其远程数字签名。0030 进一步的,所述远程同步管理器还包括:0031 远程数据过滤模块,用于对所述远程同步数据库中存储的本地数据日志进行识别,过滤掉重复的本地数据日志,以减少所述远程数据同步模块的重复数据同步操作;0032 远程数据重放模块,用于查询所述远程同步数据库中存储的本地数据日志是否已经被执行,若是,则跳过此条本地数据日志;若否,则重新执行该条本。

17、地数据日志,并记录到所述远程同步执行记录中。0033 相应的,本发明还提供一种应用上述非关系型数据库同步系统的双写同步方法,包括:0034 所述本地非关系型数据库保存本地业务所需数据以及产生本地数据日志;说 明 书CN 103106200 A3/7页60035 所述远程非关系型数据库保存远程业务所需数据以及产生远程数据日志;0036 所述本地同步管理器抽取所述远程数据日志并产生本地数字签名,将抽取的远程数据日志与本地数据日志对比,同步所述远程非关系型数据库的数据到所述本地非关系型数据库中,所述本地非关系型数据库产生新的本地数据日志;0037 所述远程同步管理器抽取所述本地数据日志并产生远程数字。

18、签名,将抽取的本地数据日志与远程数据日志对比,同步所述本地非关系型数据库的数据到所述远程非关系型数据库中,所述远程非关系型数据库产生新的远程数据日志。0038 进一步的,保存所述本地非关系型数据库产生的本地数据日志、本地同步管理器所抽取的远程数据日志及其本地数字签名到一本地同步数据库中;0039 保存所述远程非关系型数据库产生的远程数据日志、远程同步管理器所抽取的本地数据日志其远程数字签名到一远程同步数据库。0040 与现有技术相比,本发明提供的非关系型数据库同步系统及双写同步方法,通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述。

19、本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。附图说明0041 图1是本发明实施例一的非关系型数据库同步系统的架构示意图;0042 图2是本发明实施例一的本地同步管理器的具体结构及其与本地同步数据库的连接示意图;0043 图3是本发明实施例一的远程同步管理器的具体结构及其与远程同步数据库的连接示意图;0044 图4是本发明实施例二的基于非关系型数据库同。

20、步系统的双写同步方法流程图;0045 图5是本发明实施例二的非关系型数据库同步系统在双写同步时的日志示意图。具体实施方式0046 以下结合附图和具体实施例对本发明提出的非关系型数据库同步系统及双写同步方法作进一步详细说明。0047 实施例一0048 如图1所示,本实施例提供一种非关系型数据库同步系统,包括:0049 本地非关系型数据库11,用于保存本地10业务所需数据以及产生本地数据日志,其中,所述本地非关系型数据库11的本地数据日志为按时间阶段依次产生的本地阶段性日志;0050 远程非关系型数据库21,用于保存远程20业务所需数据以及产生远程数据日志,其中,所述远程非关系型数据库21的远程数。

21、据日志为与所述本地阶段性日志所在的相同时间阶段产生的远程阶段性日志;说 明 书CN 103106200 A4/7页70051 本地同步管理器12,用于抽取所述远程数据日志并产生本地数字签名,以及将抽取的远程数据日志与本地数据日志对比以对本地非关系型数据库11的数据进行更新;0052 远程同步管理器22,用于抽取所述本地数据日志并产生远程数字签名,以及将抽取的本地数据日志与远程数据日志对比以对远程非关系型数据库21的数据进行更新;0053 本地同步数据库13,用于保存所述本地非关系型数据库11产生的本地数据日志、本地同步管理器12所抽取的远程数据日志以及其本地数字签名;0054 远程同步数据库2。

22、3,用于保存所述远程非关系型数据库21产生的远程数据日志、远程同步管理器22所抽取的本地数据日志及其远程数字签名。0055 如图2所示,本实施例中,所述本地同步管理器12包括:0056 本地数据抽取模块121,用于抽取一本地阶段性日志的前一时间阶段所述远程非关系型数据库21产生的远程阶段性日志;0057 本地数据处理模块122,用于为抽取出的远程阶段性日志产生本地数字签名,并将抽取出的远程阶段性日志及其本地数字签名存入所述本地同步数据库13,还用于在完成所述远程非关系型数据库21到所述本地非关系型数据库11的本时间阶段数据同步后,清理所述本地同步数据库11中存储的本时间阶段以前的本地阶段性日志。

23、、远程阶段性日志及其本地数字签名;0058 本地数据过滤模块123,用于对所述本地同步数据库13中存储的远程阶段性日志进行识别,过滤掉重复的远程阶段性日志,减少所述本地数据同步模块的重复数据同步操作;0059 本地数据重放模块124,用于查询所述本地同步数据库13中存储的远程阶段性日志是否已经被执行,若是,则跳过此条远程阶段性日志;若否,则重新执行该条远程阶段性日志,并记录到本地数据同步模块125的本地同步执行记录中;0060 本地数据同步模块125,用于对比所述抽取出的远程阶段性日志与所述本地阶段性日志,将所述远程非关系型数据库21的数据同步到本地非关系型数据库11中,并生成本地同步执行记录。

24、。0061 如图3所示,本实施例中,所述远程同步管理器22包括:0062 远程数据抽取模块221,抽取一远程阶段性日志的前一时间阶段所述本地非关系型数据11产生的本地阶段性日志;0063 远程数据处理模块222,用于为抽取出的本地阶段性日志产生远程数字签名,并将抽取出的本地阶段性日志及其远程数字签名存入所述远程同步数据库23,还用于在完成所述本地非关系型数据库11到所述远程非关系型数据库21的本时间阶段数据同步后,清理所述远程同步数据库23中存储的本阶段以前的远程阶段性日志、本地阶段性日志及其远程数字签名;0064 远程数据过滤模块223,用于对所述远程同步数据库23中存储的的本地阶段性日志进。

25、行识别,过滤掉重复的本地阶段性日志,减少所述远程同步数据同步模块的重复数据同步操作;0065 远程数据重放模块224,用于查询所述远程同步数据库23中存储的本地阶段性日志是否已经被执行,若是,则跳过此条本地阶段性日志;若否,则重新执行该条本地阶段性日志,并记录到远程数据同步模块225产生的远程同步执行记录中;说 明 书CN 103106200 A5/7页80066 远程数据同步模块225,用于对比所述抽取出的本地阶段性日志与远程阶段性日志,将所述本地非关系型数据库11的数据同步到远程非关系型数据库21中,并生成远程同步执行记录。0067 需要说明的是,本地数据处理模块122和远程数据处理模块2。

26、22可以采用SHA1算法(Secure Hash Algorithm,安全哈希算法)对抽取的远程阶段性日志和本地阶段性日志中去除时间标记外其他部分添加新的key:value(键:值)对以产生本地数字签名和远程数字签名。0068 综上所述,本实施例提供的非关系型数据库同步系统,可以通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志。

27、的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。0069 实施例二0070 如图4所示,本实施例提供一种基于本发明的非关系型数据库同步系统的双写同步方法,包括步骤S1至步骤S4,下面结合附图1-5对本实施例所述的双写同步方法做进一步的详述。0071 步骤S1,所述本地非关系型数据库保存本地业务所需数据以及产生本地数据日志。0072 请参考图1和图5,本步骤中,T0-T1阶段,本地非关系型数据库11产生本地阶段性日志C1。0073 步骤S2,所述远程非关系型数据库保存远程业务所需数据以及产生远程数据日志。0074 请参考图1和图5,本步骤中,T0-T1阶段,远。

28、程非关系型数据库21产生远程阶段性日志U1。0075 步骤S3,所述本地同步管理器抽取所述远程数据日志并产生远程数字签名,将抽取的远程数据日志与本地数据日志对比,同步所述远程非关系型数据库的数据到所述本地非关系型数据库中,所述本地非关系型数据库产生新的本地数据日志。0076 请参考图1、图2和图5,本步骤中,T1-T2阶段,本地非关系型数据库11产生本地阶段性日志C2,本地数据抽取模块121抽取步骤S2中T0-T1阶段的远程阶段性日志U1;本地数据处理模块122为远程阶段性日志U1产生本地数字签名,并将远程阶段性日志U1及其本地数字签名存入所述本地同步数据库13;本地数据同步模块125对比远程。

29、阶段性日志U1与本地阶段性日志C2,将所述远程非关系型数据库21的数据同步到本地非关系型数据库11中,并生成本地同步执行记录。0077 步骤S4,所述远程同步管理器抽取所述本地数据日志并产生本地数字签名,将抽取的本地数据日志与远程数据日志对比,同步所述本地非关系型数据库的数据到所述远程非关系型数据库中,所述远程非关系型数据库产生新的远程数据日志。0078 请参考图1、图2和图5,本步骤中,T1-T2阶段,远程非关系型数据库21产生远程阶段性日志U2,远程数据抽取模块221抽取步骤S1中T0-T1阶段的本地阶段性日志C1;远说 明 书CN 103106200 A6/7页9程数据处理模块222为本。

30、地阶段性日志C1产生远程数字签名,并将本地阶段性日志C1及其远程数字签名存入所述远程同步数据库23;远程数据同步模块225对比本地阶段性日志C1与远程阶段性日志U2,将所述本地非关系型数据库11的数据同步到远程非关系型数据库21中,并生成远程同步执行记录。0079 进一步的,在划分的时间阶段不只仅有T0-T1-T2时,在后续时间阶段中,本地非关系型数据库11按时间阶段T2-T3、T3-T4、T4-T5依次产生本地阶段性日志C3、C4、C5、,远程非关系型数据库21按相同时间阶段依次产生远程阶段性日志U3,U4、U5、,只要循环执行步骤S3与步骤S4,即可完成所有时间阶段的本地非关系型数据库11。

31、与远程非关系型数据库21的双写同步,例如在T2-T3阶段:0080 本地非关系型数据库11产生本地阶段性日志C3,本地数据抽取模块121抽取步骤S2中T1-T2阶段的远程阶段性日志U2;本地数据处理模块122为远程阶段性日志U2产生本地数字签名,并将远程阶段性日志U2及其本地数字签名存入所述本地同步数据库13;本地数据同步模块125对比远程阶段性日志U2与本地阶段性日志C3,将所述远程非关系型数据库21的数据同步到本地非关系型数据库11中,并生成本地同步执行记录;0081 远程非关系型数据库21产生远程阶段性日志U3,远程数据抽取模块221抽取步骤S1中T1-T2阶段的本地阶段性日志C2;远程。

32、数据处理模块222为本地阶段性日志C2产生远程数字签名,并将本地阶段性日志C2及其远程数字签名存入所述远程同步数据库23;远程数据同步模块225对比本地阶段性日志C2与远程阶段性日志U3,将所述本地非关系型数据库11的数据同步到远程非关系型数据库21中,并生成远程同步执行记录。0082 其中,由于本地阶段性日志C1在T1-T2阶段中被同步到远程非关系型数据库21中,所以本地同步数据库13应至少保存本时间阶段在内的前3个时间阶段的本地阶段性日志,例如在T2-T3阶段时,本地同步数据库13保存本地阶段性日志C1、C2、C3(如图5所示);同样,远程同步数据库23应至少保存本时间阶段在内的前3个时间。

33、阶段的远程阶段性日志,例如在T2-T3阶段时,远程同步数据库13保存远程阶段性日志U1、U2、U3。0083 进一步的,在循环执行步骤S3和S4的过程中,还可以通过本地数据处理模块122在完成所述远程非关系型数据库21到所述本地非关系型数据库11的本时间阶段的数据同步后,清理所述本地同步数据库11中存储的本时间阶段以前的本地阶段性日志、远程阶段性日志及其本地数字签名;通过远程数据处理模块222在完成所述本地非关系型数据库11到所述远程非关系型数据库21的本时间阶段数据同步后,清理所述远程同步数据库23中存储的本阶段以前的远程阶段性日志、本地阶段性日志及其远程数字签名;如图5所示,在T3-T4时。

34、间阶段,通过本地数据处理模块122删除本地同步数据库13在T1-T2阶段存储的本地阶段性日志C1、及远程阶段性日志U1及其本地数字签名;通过远程数据处理模块222删除远程同步数据库23在T1-T2阶段存储的远程阶段性日志U1、本地阶段性日志C1及其本地数字签名;0084 进一步的,在循环执行步骤S3和S4的过程中,还可以通过本地数据过滤模块123对所述本地同步数据库13中存储的远程阶段性日志进行识别,过滤掉重复的远程阶段性日志;通过本地数据重放模块124查询所述本地同步数据库13中存储的远程阶段性日志是否已经被执行,若是,则跳过此条远程阶段性日志;若否,则重新执行该条远程阶段性日志,并记录到本。

35、地数据同步模块125的本地同步执行记录中。说 明 书CN 103106200 A7/7页100085 进一步的,在循环执行步骤S3和S4的过程中,还可以通过远程数据过滤模块223对所述远程同步数据库23中存储的本地阶段性日志进行识别,过滤掉重复的本地阶段性日志;通过远程数据重放模块224查询所述远程同步数据库23中存储的本地阶段性日志是否已经被执行,若是,则跳过此条本地阶段性日志;若否,则重新执行该条本地阶段性日志,并记录到远程数据同步模块225产生的远程同步执行记录中。0086 需要说明的是,在双写同步过程中可能出现多种问题,考虑对以下情况进行异常处理:0087 1、步骤S3和步骤S4抽取过。

36、程中网络中断,或不能建立和对方非关系型数据库的连接时,网络中断后只对已经抽取的数据日志进行处理;0088 2、步骤S3和步骤S4抽取过程中运行本地/远程同步管理器的主机死机时,该主机重启后,需要本地/远程同步管理器回到以前状态,检查本地/远程同步数据库,如果不空,继续对抽取的数据进行重放操作;如果本地/远程同步数据库为空,继续下一时间阶段的数据同步;0089 3、长时间网络中断时,本地/远程同步管理器可以合并时间阶段进行一次性数据同步;0090 4、本地/远程同步管理器单方面完成本地/远程非关系型数据库的数据同步,而远程/本地同步管理器未完成本地/远程非关系型数据库的数据同步时,完成方可继续进。

37、行下一时间阶段的数据同步,未完成方需合并从未完成之时间阶段到完成方的前一时间阶段的所有时间阶段进行一次性数据同步以提高双写同步的效率,如本地同步管理器已完成了T0-T1、T1-T2、T2-T3阶段的远程非关系型数据库到本地非关系型数据库的数据同步,而远程同步管理器只完成了T0-T1阶段的本地非关系型数据库到远程非关系型数据库的数据同步时,那么下一时间阶段,远程同步管理器合并T1-T2、T2-T3阶段,一次性完成的T1-T3阶段的本地非关系型数据库到远程非关系型数据库的数据同步。0091 综上所述,本发实施例提供的非关系型数据库同步系统的双写方法,通过所述本地同步管理器将所述远程非关系型数据库的数据同步到所述本地非关系型数据库中,通过所述远程同步管理器将所述本地非关系型数据库的数据同步到所述远程非关系型数据库中,实现了在远程网络环境中本地非关系型数据库和远程非关系型数据库的双写同步操作;进一步的,通过所述本地数据过滤模块和远程数据过滤模块避免了同步时大量重复日志的产生,节约了存储资源;通过本地数据重放模块和远程数据重放模块避免了数据同步的遗漏。0092 显然,本领域的技术人员可以对发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。说 明 书CN 103106200 A10。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 物理 > 计算;推算;计数


copyright@ 2017-2020 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1