[发明专利]基于日志推送的分布式数据库容灾方法有效
申请号: | 202110934890.3 | 申请日: | 2021-08-16 |
公开(公告)号: | CN113377582B | 公开(公告)日: | 2021-11-05 |
发明(设计)人: | 周建华;周兴;徐恺华;刘明;胡景辉;张治臣;苏锦佩;史天航 | 申请(专利权)人: | 北京易鲸捷信息技术有限公司 |
主分类号: | G06F11/14 | 分类号: | G06F11/14 |
代理公司: | 四川言己律师事务所 51349 | 代理人: | 罗韬 |
地址: | 100089 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 日志 推送 分布式 数据 库容 方法 | ||
1.一种基于日志推送的分布式数据库容灾方法,其特征在于所述的方法包括如下步骤:
步骤A、在客户端通过主数据库集群中进行事务的操作时,主数据库集群启动事务日志同步线程,同步将当前事务的操作记录为事务日志;
步骤B、将所述事务日志发送给日志推送实例,由日志推送实例将所述事务日志推送至备数据库集群的事务日志表中;
如推送成功,则将推送成功的信息返回至当前事务,当前事务提交返回至客户端;如推送失败,则重试至少一次,如仍推送失败,日志推送实例则将当前事务日志推送到事务日志缓存队列中进行存储;并将事务提交返回至客户端;
步骤C、当日志推送实例重试仍推送事务日志失败时,主数据库集群通过事务日志表探测线程,探测备数据库集群的事务日志表是否可推送数据进入;
如探测结果为是,则启动另一个事务日志同步线程,将当前日志缓存队列中存储的当前事务日志推送至备数据库集群的事务日志表中,且在推送失败且重试后仍失败时,重复步骤C;
如探测结果为否,则将当前事务日志暂存至日志缓存队列中。
2.根据权利要求1所述的基于日志推送的分布式数据库容灾方法,其特征在于:所述的方法还包括步骤D、备数据库集群的事务日志回放线程在接收到日志推送实例推送的事务日志时,事务日志回放线程立即读取事务日志进行回放。
3.根据权利要求1所述的基于日志推送的分布式数据库容灾方法,其特征在于:所述日志推送实例在主数据库集群首次接收到客户端事务的操作时,进行初始化,然后进入正常状态。
4.一种基于日志推送的分布式数据库容灾方法,其特征在于所述的方法包括如下步骤:
步骤A、在客户端通过主数据库集群中进行事务的操作时,主数据库集群启动事务日志同步线程,同步将当前事务的操作记录为事务日志;
步骤B、将所述事务日志发送给日志推送实例,由日志推送实例将所述事务日志推送至用于存储事务日志的安全队列中,然后将执行结果返回给当前事务,当前事务提交返回给客户端;再由日志推送实例同步或陆续的将安全队列中的事务日志的推送至备数据库集群的事务日志表中;
如推送失败,则重试至少一次,如仍推送失败,日志推送实例则将当前事务日志推送到事务日志缓存队列中进行存储;
步骤C、当日志推送实例重试仍推送事务日志失败时,主数据库集群通过事务日志表探测线程,探测备数据库集群的事务日志表是否可推送数据进入;
如探测结果为是,则启动另一个事务日志同步线程,将当前日志缓存队列中存储的当前事务日志推送至备数据库集群的事务日志表中,且在推送失败且重试后仍失败时,重复步骤C;
如探测结果为否,则将当前事务日志暂存至日志缓存队列中。
5.根据权利要求4所述的基于日志推送的分布式数据库容灾方法,其特征在于:所述步骤B中,日志推送实例启用flush线程,每间隔单位时间将安全队列中的事务日志推送至备数据库集群的事务日志表中;或者安全队列存储满后,再由日志推送实例启用flush线程将安全队列中的事务日志推送至备数据库集群的事务日志表中。
6.根据权利要求4或5所述的基于日志推送的分布式数据库容灾方法,其特征在于:所述的方法还包括步骤D、备数据库集群的事务日志回放线程在接收到日志推送实例推送的事务日志时,事务日志回放线程立即读取事务日志进行回放。
7.根据权利要求4所述的基于日志推送的分布式数据库容灾方法,其特征在于:所述日志推送实例在主数据库集群首次接收到事务的操作时,进行初始化,然后进入正常状态。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京易鲸捷信息技术有限公司,未经北京易鲸捷信息技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110934890.3/1.html,转载请声明来源钻瓜专利网。