[发明专利]主备数据库同步的方法和装置有效
| 申请号: | 201210564590.1 | 申请日: | 2012-12-21 |
| 公开(公告)号: | CN103885986B | 公开(公告)日: | 2017-12-19 |
| 发明(设计)人: | 叶晖俊 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 北京安信方达知识产权代理有限公司11262 | 代理人: | 栗若木 |
| 地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 数据库 同步 方法 装置 | ||
技术领域
本申请涉及数据处理领域,尤其是一种数据库主备数据库同步的方法和装置。
背景技术
MySQL是互联网行业广泛使用的开源数据库软件。很多大型网站都在使用MySQL数据库,随着业务规模不断的增长,一台MySQL数据库会无法支撑庞大的访问量。
有一个有效的解决方案就是建立MySQL主备集群,备数据库是主数据库的完全镜像。写请求只落在主数据库上,读请求会均衡的分布到所有数据库上,这样整个集群可以提供更大容量的读写服务。MySQL主数据库在接收新增变更数据后,再通过同步工具,把变更数据实时同步到备数据库。
Mysql binlog日志是一种二进制日志,包括三种格式,分别为ROW(行)格式、Statement(SQL语句)格式、MIX(混合)格式。其中ROW格式记录了每次数据变更的整行完整的旧值和新值。信息丰富完整,并且拥有重复复制到从库,得到的最终数据还是一致的特性。
MySQL官方提供社区版,主备同步采用的是单线程同步。当主数据库有较高的写入负载时,主从同步的延时增加,导致从库不能及时的读取到最新的数据,降低了整个集群的可用性。
发明内容
本申请要解决的技术问题是提供一种主备数据库同步的方法和装置,以解决现有主备数据库同步效率低下的问题。
为解决上述技术问题,本申请提供了一种主备数据库同步的方法,用于主数据库和备数据库间的数据同步,该方法包括:
事务派发步骤,将从主数据库读取的各个事务或各个事务的标识派发至写队列;
事务写入步骤,采用多个写线程并行将各写线程对应的写队列中的事务或标识对应的事务写入备数据库。
进一步地,所述派发步骤前,该方法还包括:
预处理步骤,依次提取各个事务的主键,为各个事务创建主键列表,根据各个事务的主键列表,依次将各个事务的标识放入各个事务的主键对应的主键事务队列中,处于主键事务队列的队首的事务获得该主键对应的虚拟记录锁;
派发事务或写入事务的前提为该事务的虚拟记录锁总数等于该事务的主键列表中主键的总数。
进一步地,所述预处理步骤中,去除重复的主键后创建所述主键列表。
进一步地,所述派发步骤还包括:对于已经写入备数据库的事务,删除位于主键事务队列队首的该事务的事务标识,将虚拟记录锁传递给该主键事务队列的下一个节点。
进一步地,所述事务派发步骤由派发线程执行,预处理步骤中,为各个事务创建虚拟记录锁计数器,该事务每获得一个虚拟记录锁,该虚拟记录锁计数器加1,所述派发线程或写线程根据所述虚拟记录锁计数器判断当前事务的虚拟记录锁总数等于该事务的主键列表中主键的总数。
进一步地,事务派发步骤中,根据写队列最短原则或事务哈希值为当前事务选择写队列。
进一步地,述事务的哈希值是将各个事务的第一个主键转换成字符串,再通过哈希计算得到的。
进一步地,事务写入步骤之后,该方法还包括删除步骤,删除已写入备数据库的事务对象。
为解决上述技术问题,本发明还提供了一种主备数据库同步的装置,该装置包括:
派发单元,用于依次将从主数据库读取的各个事务或各个事务的标识派发至写队列;
写入单元,用于采用多个写线程并行将各写线程对应的写队列中的事务或标识对应的事务写入备数据库;
若干个写队列,用于存放派发单元派发的事务或事务的标识,一个写队列对应一个写线程。
相较于现有技术,本申请技术方案同步的最小单位是事务;在同步过程中确保了事务的原子性;且采用多个写线程同时并行执行写入操作,减少了时延,可及时实现主备数据库同步,提高了同步效率,增加了集群的可用性。
附图说明
图1为本申请主备数据库同步的方法实施例1的示意图;
图2为本申请主备数据库同步的方法实施例2的示意图;
图3为本申请主备数据库同步的方法实施例3的示意图;
图4为本申请主备数据库同步的方法实施例4的示意图;
图5是本申请给出的一个应用实例的示意图;
图6为本发明主备数据库同步的装置的模块结构示意图;
图7为本发明主备数据库同步的装置的另一模块结构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210564590.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种治疗肺脾同病型小儿厌食的中药
- 下一篇:一种高吞吐率的FFT加速器





