一种数据同步系统和方法技术方案

技术编号:12383229 阅读:120 留言:0更新日期:2015-11-25 14:38
本发明专利技术公开了一种数据同步系统,适于将源数据库中的数据同步到目标数据库,该系统包括消息队列生产者服务器、第一消息队列服务器、第二消息队列服务器和消息队列消费者服务器,其中:所述消息队列生产者服务器适于根据预定的捕获策略捕获源数据库的变化数据,对捕获的变化数据进行编码和压缩后,写入到第一消息队列服务器中的第一消息队列;所述第一消息队列服务器适于将第一消息队列中的消息发送给第二消息队列服务器中的第二消息队列;所述消息队列消费者服务器适于对第二消息队列中的编码和压缩后的变化数据进行解压缩及解码,并根据解压缩和解码后的变化数据对目标数据库中的数据进行更新。本发明专利技术还公开了相应的数据同步方法。

【技术实现步骤摘要】

本专利技术涉及数据库
,特别涉及。
技术介绍
随着业务与用户规模的不断增加,传统的单一互联网数据中心(Internet DataCenter, IDC)机房已不能满足企业的发展需求,跨地域的互联网数据中心建设由此产生,多活的异地数据中心需要有数据实时性和一致性的解决方案,而业界现有方案(例如SQLServer数据库自身的数据复制方案、MySQL数据同步方案等),没法满足需求。SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,被广泛应用于数据库的同步备份。这里的同步备份指的是备份服务器与主服务器进行实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用。它是一种优于文件备份的数据库备份解决方案,采用基于快照的事务复制,主数据库服务器生成快照,备份库服务器读取并加载该快照,然后不停地从主数据库服务器复制事务日志。但是,基于快照的事务复制已不能满足跨互联网数据中心进行数据同步时高性能、低延时需求。另外,现有方案复制时,数据库表都必须有主键,没有建主键不能同步,但现实中有高速写表的应用场景,这类场景不需要主键(可以使数据插入更快),可见现有方案并不能适应这类场景。因此,需要一种高性能、低延时的跨互联网数据中心进行数据同步的方案。
技术实现思路
为此,本专利技术提供一种新的数据同步系统和方法,以力图解决或者至少缓解上面存在的冋题。根据本专利技术的一个方面,提供一种数据同步系统,适于将源数据库中的数据同步到目标数据库,该系统包括消息队列生产者服务器、第一消息队列服务器、第二消息队列服务器和消息队列消费者服务器,其中:消息队列生产者服务器包括:数据捕获单元,适于根据预定的捕获策略捕获源数据库的变化数据;压缩单元,适于对捕获的变化数据进行编码和压缩;写消息队列单元,适于将编码和压缩后的变化数据作为消息写入到第一消息队列服务器中的第一消息队列;消息队列服务器适于将第一消息队列中的消息发送给第二消息队列服务器;第二消息队列服务器适于将接收到的消息写入到第二消息队列服务器中的第二消息队列;消息队列消费者服务器包括:读消息队列单元,适于从第二消息队列中读取消息,得到编码和压缩后的变化数据;解压缩单元,适于对编码和压缩后的变化数据进行解压缩及解码;数据更新单元,适于根据解压缩和解码后的变化数据对目标数据库中的数据进行更新。可选地,在根据本专利技术的数据同步系统中,捕获策略包括:数据库触发器、变更数据捕获服务和应用程序级捕获。可选地,在根据本专利技术的数据同步系统中,消息队列生产者服务器还包括捕获策略分配单元,捕获策略分配单元适于:为数据变化源头已知的数据分配应用程序级的捕获策略;为数据变化源头未知且实时性要求高的数据分配数据库触发器的捕获策略;以及为数据变化源头未知且实时性要求低的数据分配变更数据捕获服务的捕获策略。可选地,在根据本专利技术的数据同步系统中,压缩单元还适于:判断变化数据的大小是否大于第一阈值;如果变化数据的大小超过第一阈值,则对变化数据进行编码和压缩,否则不对变化数据进行编码和压缩。可选地,在根据本专利技术的数据同步系统中,第一阈值为4kb-10kb。可选地,在根据本专利技术的数据同步系统中,压缩单元还适于:当消息队列生产者服务器的网络带宽占用比例小于或等于第二阈值时,通过Gzip程序对变化数据进行编码和压缩;当消息队列生产者服务器的网络带宽占用比例大于第二阈值时,通过7-zip程序对变化数据进行编码和压缩。可选地,在根据本专利技术的数据同步系统中,第一消息队列服务器和第二消息队列服务器之间具有多条通信链路,第一消息队列服务器还适于根据预定策略从多条通信链路中选择一条或者一条以上的链路进行消息的传输。根据本专利技术的一个方面,提供一种数据同步方法,适于将源数据库中的数据同步到目标数据库,该方法包括:根据预定的捕获策略捕获源数据库的变化数据;对捕获的变化数据进行编码和压缩;将编码和压缩后的变化数据作为消息写入到第一消息队列;将第一消息队列中的消息发送给第二消息队列;从第二消息队列中读取信息,得到编码和压缩后的变化数据;对编码和压缩后的变化数据进行解压缩及解码;根据解压缩和解码后的变化数据对目标数据库中的数据进行更新。可选地,在根据本专利技术的数据同步方法中,捕获策略包括:数据库触发器、变更数据捕获服务和应用程序级捕获。可选地,在根据本专利技术的数据同步方法中,根据预定的捕获策略捕获源数据库的变化数据的步骤包括:为数据变化源头已知的数据分配应用程序级的捕获策略;为数据变化源头未知且实时性要求高的数据分配数据库触发器的捕获策略;以及为数据变化源头未知且实时性要求低的数据分配变更数据捕获服务的捕获策略。可选地,在根据本专利技术的数据同步方法中,对捕获的变化数据进行编码和压缩的步骤包括:判断变化数据的大小是否大于第一阈值;如果变化数据的大小超过第一阈值,则对变化数据进行编码和压缩,否则不对变化数据进行编码和压缩。可选地,在根据本专利技术的数据同步方法中,第一阈值为4kb_10kb。可选地,在根据本专利技术的数据同步方法中,对捕获的变化数据进行编码和压缩的步骤还包括:当网络带宽占用比例小于或等于第二阈值时,通过Gzip程序对变化数据进行编码和压缩;当网络带宽占用比例大于第二阈值时,通过7-zip程序对变化数据进行编码和压缩。可选地,在根据本专利技术的数据同步方法中,第一消息队列和第二消息队列之间具有多条通信链路,第一消息队列还适于根据预定策略从多条通信链路中选择一条或者一条以上的链路进行消息的传输。根据本专利技术实施例的一个技术方案,在进行数据库同步时,引入了基于消息队列的同步技术,能够满足跨IDC数据同步时高性能、低延时需求。根据本专利技术实施例的其他技术方案,面对不同类型的源数据库数据,采用与其适应的数据捕获策略,数据捕获方式灵活多样,数据捕获速度得到了提高。根据本专利技术实施例的其他技术方案,将变化数据进行压缩来减少传送数据的大小,能够获得更好的传输速度和性能,另外还可以根据变化数据的大小来确定是否进行所述压缩,以及根据网络带宽占用比例来确定所采用的压缩程序,使得数据压缩方案更加适应于系统工作状况。根据本专利技术实施例的其他技术方案,还可以配置消息队列的路由分发,实现网络传输的优先策略和冗余策略,在某路电信级骨干网络延时较高或故障时,实现实时切换,选择最佳通信链路,实现了高可用。【附图说明】为了实现上述以及相关目的,本文结合下面的描当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种数据同步系统,适于将源数据库中的数据同步到目标数据库,该系统包括消息队列生产者服务器、第一消息队列服务器、第二消息队列服务器和消息队列消费者服务器,其中:所述消息队列生产者服务器包括:数据捕获单元,适于根据预定的捕获策略捕获源数据库的变化数据;压缩单元,适于对捕获的变化数据进行编码和压缩;写消息队列单元,适于将编码和压缩后的变化数据作为消息写入到第一消息队列服务器中的第一消息队列;所述消息队列服务器适于将第一消息队列中的消息发送给第二消息队列服务器;所述第二消息队列服务器适于将接收到的消息写入到第二消息队列服务器中的第二消息队列;所述消息队列消费者服务器包括:读消息队列单元,适于从第二消息队列中读取消息,得到编码和压缩后的变化数据;解压缩单元,适于对编码和压缩后的变化数据进行解压缩及解码;数据更新单元,适于根据解压缩和解码后的变化数据对目标数据库中的数据进行更新。

【技术特征摘要】

【专利技术属性】
技术研发人员:何大红
申请(专利权)人:车智互联北京科技有限公司
类型:发明
国别省市:北京;11

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

1