[发明专利]一种跨机房数据库同步方法及系统在审

专利信息
申请号: 201210400979.2 申请日: 2012-10-19
公开(公告)号: CN103778136A 公开(公告)日: 2014-05-07
发明(设计)人: 楼江航 申请(专利权)人: 阿里巴巴集团控股有限公司
主分类号: G06F17/30 分类号: G06F17/30;G06F11/14
代理公司: 杭州天勤知识产权代理有限公司 33224 代理人: 杨天娇
地址: 英属开曼群岛大开*** 国省代码: 开曼群岛;KY
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 机房 数据库 同步 方法 系统
【说明书】:

技术领域

本申请涉及计算机及网络技术领域,尤其涉及一种跨机房数据库同步传输方法和系统。

背景技术

目前针对一些大型网站业务,在系统可用性上往往会考虑数据库的跨机房镜像复制,容灾备份等,在发生不可抗力因素导致当地数据不可用时,能够快速的通过异步的数据库备份或者镜像提供系统访问。

在做数据库同步时,目前一般的做法是通过数据库DML/DDL的变更日志解析,发送给目标库后再重新执行一次数据库DML/DDL变更,以达到两边的数据库保持一致。这种做法针对跨机房,跨地区网络的数据库同步,存在的一个问题就是数据的传输量以及重新执行的代价,源数据库和目标数据库完全是1∶1的模式,源库的一次变更,就会有一份数据传输以及一次DDL/DML执行。

目前杭州到青岛的单个tcp包的网络延迟为70ms,杭州到美国的单个tcp包的网络延迟为200ms,一旦同一时间数据库的变更达到一个高峰,数据库的同步过程会因为网络传输和重新执行而造成阻塞,从而导致数据库同步延迟。因此,针对一些跨机房,跨地区网络的数据库同步,如何减少传输数据以及减少重新执行的代价就非常关键。

现有的技术通常是利用数据库自带的解决方案,比如使用比较广泛的mysql数据库同步。mysql同步会将数据库变更的记录存入binlog文件,并提供socket服务,由需要执行同步的目标库发起一次数据同步请求。

目前mysql5版本自带数据库复制方案,同步系统本身与mysql server进行了集成,作为一个mysql组件存在。例如源数据库为A,目标数据库为B,同步系统为C,同步过程如下:

1)同步系统通过单个socket链接和数据库建立链接,开始监听数据变更;

2)原始数据在数据库A中发生insert/update/delete等操作;

3)数据库A会在本地生成变更日志数据;

4)同步系统监听到数据变更,通过建立的socket开始获取变更数据;

5)在异步接收完整个变更数据包后,解析为内部执行对象;

6)根据数据库A上的变更操作,在目标数据库B上重新执行insert/update/delete等操作。

但现有技术mysql同步主要存在以下问题:

1)为保证同步顺序性,mysql采用了tcp长链接的方式进行数据传输。

2)为保证数据的可靠性,mysql采用了ack请求的回馈模式+顺序传输。只有上一批数据完全获取成功后,才会去获取下一批数据,并且同一时间只有一份数据在传输。

3)mysql变更日志文件binlog详细记录每次数据库的变更,可以提供DBA(数据库管理员)详细查看后用于分析数据库的历史变更记录,并不是仅仅为数据库的高效同步而特殊设计的,所以存在很多冗余数据,造成数据量巨大。

针对跨机房,跨地区网络的同步业务,传统的单tcp工作模式面对高峰时期的数据库变更同步时,会产生数据堆积,造成网络拥堵。

发明内容

本申请提出了一种高效、可靠的数据库同步方法及系统,采用多线程并行处理的思路,利用SQL语义执行的特性,通过对数据的合并、压缩、并行处理等完整的传输方案,来缓解目前跨机房、跨地区网络的同步延迟问题。

一种跨机房数据库同步方法,用于目标数据库跨机房的从源数据库同步数据,包括如下步骤:

步骤100、在源数据库端监听源数据库的变更;

步骤110、利用多个顺序编号的并行进程依次提取源数据库的变更数据;

步骤120、各个并行进程将提取到的数据经合并、压缩后进行发送;

步骤130、在目标数据库端接收各个并行进程发送的数据,按照各并行进程的次序进行加载得到待同步数据,利用该待同步数据更新目标数据库。

所述步骤100中,在源数据库端通过socket和源数据库建立链接,监听数据变更,所述源数据库的变更为Insert、Update、Delete至少一种事件的触发。

源数据库发生insert、update或delete事件时会在本地生成变更日志数据,通过建立的socket可以获取变更数据。

步骤110具体包括:

步骤111、开启多个并行进程并对每个并行进程赋以编号;

步骤112、各个并行进程按照编号依次提取源数据库的变更数据,且在提取的同时进行解析得到若干内部对象,即步骤120所述的提取到的数据。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210400979.2/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top