[发明专利]基于日志推送的分布式数据库容灾方法有效
申请号: | 202110934890.3 | 申请日: | 2021-08-16 |
公开(公告)号: | CN113377582B | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 周建华;周兴;徐恺华;刘明;胡景辉;张治臣;苏锦佩;史天航 | 申请(专利权)人: | 北京易鲸捷信息技术有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 四川言己律师事务所 51349 | 代理人: | 罗韬 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 日志 推送 分布式 数据 库容 方法 | ||
本发明公开了一种基于日志推送的分布式数据库容灾方法,属一种数据库容灾的方法,方法包括在客户端通过主数据库集群中进行事务的操作时,主数据库集群启动事务日志同步线程,同步将当前事务的操作记录为事务日志;将所述事务日志发送给日志推送实例,由日志推送实例将所述事务日志推送至备数据库集群的事务日志表中等步骤;本发明相对于MySQL数据库中备数据库集群从主数据库集群拉取事务日志而言,节约了拉取时间,让主备数据库集群数据同步更加高效;并且在主备数据库集群进行数据推送的过程中,可针对异常情况进行处理,保证了主备数据库集群事务日志一致性,有效减少了主备数据库集群数据不一致的风险。
技术领域
本发明涉及一种数据库容灾的方法,更具体的说,本发明主要涉及一种基于日志推送的分布式数据库容灾方法。
背景技术
在数据库分布式数据库领域,容灾技术对于客户来说至关重要,所以一直是领域研究的热门方向之一。目前主流的主备数据库集群数据同步方案都与MySQL主备数据库集群数据同步类似,MySQL数据库主要由三种同步方案,分别为异步复制、半同步复制与全同步复制,前述的三种方式均存在各自的不足,在异步复制中,binlog日志记录在主数据库集群,备数据库集群需要从主数据库集群拉取binlog日志进行回放。假如备数据库集群没有拉取到主数据库集群上的binlog数据之前主数据库集群出现故障,那么binlog日志会丢失,主备数据库集群数据出现不同步的情况。在半同步复制中,binlog日志记录在主数据库集群,备数据库集群需要从主数据库集群拉取binlog日志进行回放。尽管主数据库集群会等待至少一个备数据库集群将bilog数据写入到replay log中后才返回给客户端,但是当存在多个备数据库集群的情况下,也存在主备数据库集群数据不会同步的情况。在全同步复制中,binlog日志记录在主数据库集群,备数据库集群需要从主数据库集群拉取binlog日志进行回放。主数据库集群执行完客户端提交的事务后会等待所有备数据库集群接收到写入replay log中才返回给客户端,不存在主备数据库集群数据不一致的情况,但是由于主数据库集群需要等待所有备数据库集群都回放完成返回后才返回给客户端,所以性能很差。因此MySQL数据库这种将binlog日志记录在主数据库集群上存在一定丢失的风险,尽管全同步复制的策略可以保证主备数据库集群数据是一致的,但是采用全同步复制性能会很差,而且全同步复制也是将binlog日志记录在主数据库集群,备数据库集群需要从主数据库集群拉取数据,然后备数据库集群进行binlog日志回放操作。因而有必要针对数据库的容灾技术做进一步的研究和改进。
发明内容
本发明的目的之一在于针对上述不足,提供一种基于日志推送的分布式数据库容灾方法,以期望解决现有技术中MySQL的主备数据库集群数据复制需从主数据库集群拉取事务日志,在主数据库集群出现故障时日志容易丢失,造成主备数据库集群数据不会同步,亦或为了保持数据库同步性而影响数据库的性能等技术问题。
为解决上述的技术问题,本发明采用以下技术方案:
本发明提供了一种基于日志推送的分布式数据库容灾方法,所述的方法包括如下步骤:
步骤A、在客户端通过主数据库集群中进行事务的操作时,主数据库集群启动事务日志同步线程,同步将当前事务的操作记录为事务日志;
步骤B、将所述事务日志发送给日志推送实例,由日志推送实例将所述事务日志推送至备数据库集群的事务日志表中;如推送成功,则将推送成功的信息返回至当前事务,当前事务提交返回至客户端;如推送失败,则重试至少一次,如仍推送失败,日志推送实例则将当前事务日志推送到事务日志缓存队列中进行存储。
优选的是,上述的方法还包括步骤C、当日志推送实例重试仍推送事务日志失败时,主数据库集群通过事务日志表探测线程,探测备数据库集群的事务日志表是否可推送数据进入;如探测结果为是,则启动另一个事务日志同步线程,将当前日志缓存队列中存储的当前事务日志推送至备数据库集群的事务日志表中,且在推送失败且重试后仍失败时,重复步骤C;如探测结果为否,则将当前事务日志暂存至日志缓存队列中。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京易鲸捷信息技术有限公司,未经北京易鲸捷信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110934890.3/2.html,转载请声明来源钻瓜专利网。