[发明专利]主备数据库的同步方法及装置无效
申请号: | 201610013943.7 | 申请日: | 2016-01-11 |
公开(公告)号: | CN105786959A | 公开(公告)日: | 2016-07-20 |
发明(设计)人: | 郭理靖;田琪;沈陈乐 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 中科专利商标代理有限责任公司 11021 | 代理人: | 宋焰琴 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 数据库 同步 方法 装置 | ||
技术领域
本发明涉及数据处理领域,更具体地涉及一种主备数据库的同步方法 及装置。
背景技术
MySQL是互联网行业广泛使用的开源数据库软件,不过由于甲骨文 存在将MySQL闭源的风险,许多基于MySQL的应用都面临需要使用替 代性的开源数据库软件,而MariaDB是对MySQL兼容性最好的替代方案。 但针对大型网站,使用MariaDB数据库存在一台MariaDB数据库无法支 持庞大访问量的问题。
对此有效的解决方案是建立MariaDB数据库集群,其中备数据库是主 数据库的完整镜像,写请求首先在主数据库上执行,而读请求会分布到所 有数据库上,主数据库在接收写数据完成后通过同步工具将写请求按照单 线程顺序执行的方式同步到备数据库上,从而提供更加强大的数据库读写 服务。
目前官方提供的主备同步的版本中,主备同步采用的是单线程同步, 当主数据库负载较高时,会导致同步延时增大,备数据库不能及时读取最 新数据,降低了数据库集群的可用性。
发明内容
有鉴于此,本发明的主要目的在于提供一种主备数据库同步方法及装 置,以便解决现有主备数据库在备数据库较多的情况下,同步效率低下的 问题。
为了实现上述目的,作为本发明的一个方面,本发明提供了一种主备 数据库同步装置,包括:
同步事务获取单元,用于通过对主数据库中的数据库事务进行读取, 获得需要同步的数据库事务信息,将其添加到数据库事务写队列中,并将 数据库事务主键数量作为主键处理进度值;以及
同步事务执行单元,用于采用并行写入方式将所述数据库事务写队列 中的所述数据库事务写入到备数据库中,并删除位于所述数据库事务写队 列顶端的所述数据库事务。
其中,所述同步事务执行单元包括同步事务处理组件、同步事务写入 组件和同步事务完成组件,其中所述同步事务处理组件轮训各个待处理的 数据库事务主键处理进度值,当主键事务处理进度值为0时进入所述同步 事务执行组件;所述同步事务执行组件将主键处理进度值为0的数据库事 务派发到写线程执行,采用并行写入方式将写队列的事务写入备数据库中; 所述同步事务完成组件在写入备数据库的数据库事务完成后,删除已经完 成的数据库事务,删除位于主键写队列顶端的该数据库事务,主键写队列 的第二条数据库事务自动成为主键写队列的待处理事务,并通知所述数据 库事务主键处理进度值减一。
作为本发明的另一个方面,本发明还提供了一种主备数据库同步方法, 包括以下步骤:
通过对主数据库中的数据库事务进行读取,获得需要同步的数据库事 务信息,取得数据库事务的主键,记录同步数据库事务的主键,并将数据 库事务主键数量作为主键处理进度值;
按照数据库事务主键信息,将获取到的数据库事务按照主数据库中的 顺序增加到数据库事务主键对应主键写队列中;其中,对于没有写队列的 主键需要创建新的主键写队列,并将该事务置为写队列顶端,通知该主键 处理进度值减一;
轮训各个待处理的数据库事务主键处理进度值,当主键事务处理进度 值为0时进入同步事务执行组件;
将主键处理进度值为0的数据库事务派发写线程执行,采用并行写入 方式将写队列的事务写入备数据库中;
写入备数据库的数据库事务完成后,删除已经完成的数据库事务,删 除位于主键写队列顶端的该数据库事务,主键写队列的第二条数据库事务 自动成为主键写队列的待处理事务;通知该数据库事务主键处理进度值减 一。
基于上述技术方案可知,本发明的同步装置和方法相对于现有技术, 能够将MariaDB的集群性能大大提升,有效扩展了MariaDB的试用范围, 能够支持更高的数据库访问量;此外,以事务作为同步的最小单位,事务 本身具有原子性,同时多线程并行写入的方式减少了同步的执行时间,大 大提升了MariaDB的执行效率。
附图说明
图1是本发明的基于MariaDB主备数据库的同步方法的流程框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实 施例,并参照附图,对本发明作进一步的详细说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610013943.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:筛选多媒体素材的方法和装置
- 下一篇:浏览器自动翻页的处理方法和装置