数据库主从切换方法和分布式数据库技术

技术编号:38506408 阅读:22 留言:0更新日期:2023-08-19 16:53
本发明专利技术提供了一种数据库主从切换方法和分布式数据库。其中,所述数据库主从切换方法包括:当主实例异常时,基于主实例和从实例之间的事务个数差异判断当前情况是否符合切换条件;以及,若符合所述切换条件,则进行主从实例切换;若不符合所述切换条件,则不进行主从实例切换,发送无法进行切换的通知并等待人工干预。如此配置,通过事务个数差异对主从切换过程的成功率进行预判,并且判断过程数量化、精确化,便于操作和实现。本发明专利技术的解决了现有技术中存在的缺少监控手段和量化控制的手段对主从切换过程能否成功进行预判和干预的问题。题。题。

【技术实现步骤摘要】
数据库主从切换方法和分布式数据库


[0001]本专利技术涉及计算机
,特别涉及一种数据库主从切换方法和分布式数据库。

技术介绍

[0002]当前主流的 MySQL(一种数据库语言)高可用解决方案如 MHA(Master High Availability, MySQL的一种高可用解决方案的名称),当主实例异常无法服务,数据库高可用会从其中的从实例中选取数据多从实例并把其主实例对外提供服务,主要包括以下步骤。
[0003]1. 选择数据较多的实例,从原主实例磁盘上拉取日志文件 在从实例回放以避免出现数据丢失,即补数据流程。
[0004]2. 建立其它从实例到新主的复制关系。
[0005]当前方案在步骤1的补数据流程中,有以下缺点:因为拉取旧主数据日志数据的操作是有可能失败的,因此在切换过程不可避免的会出现数据丢失,当前主流解决方案无法量化控制切换过程中允许丢失的数据。
[0006]总之,现有技术中对缺少监控手段和量化控制的手段对主从切换过程能否成功进行预判和干预。

技术实现思路

[0007]本专利技术的目的在于提供一种数据库主从切换方法和分布式数据库,以解决现有技术中存在的缺少监控手段和量化控制的手段对主从切换过程能否成功进行预判和干预的问题。
[0008]为了解决上述技术问题,本专利技术提供了一种数据库主从切换方法,应用于一分布式数据库,所述分布式数据库至少包括两个实例,任意一个所述实例都可以切换为主实例或者从实例,所述主实例和所述从实例之间基于预设逻辑进行数据同步。
[0009]所述数据库主从切换方法包括:当所述主实例异常时,基于所述主实例和所述从实例之间的事务个数差异判断当前情况是否符合切换条件;以及,若符合所述切换条件,则进行主从实例切换;若不符合所述切换条件,则不进行主从实例切换,发送无法进行切换的通知并等待人工干预。
[0010]可选的,所述数据库主从切换方法还包括:当所述分布式数据库运行时,周期性进行主从状态对比并存储对比结果,所述主从状态对比的过程至少包括获取所述主实例和所述从实例之间的事务个数差异;以及,当所述主实例异常时,基于存储的所述对比结果直接判断当前情况是否符合所述切换条件。
[0011]可选的,所述数据库主从切换方法包括:基于所述主实例和所述从实例之间的事务个数差异,以及,所述主实例和所述从实例之间的延迟进行服务等级划分,每个所述从实例具有一个独立的所述服务等级;当所述主实例异常时,基于所有所述从实例的所述服务
等级判断当前情况是否符合切换条件;以及,若符合所述切换条件,则选择所述服务等级的优先级最高的所述从实例切换为所述主实例。
[0012]可选的,所述从实例切换为所述主实例的步骤包括:将选定的所述从实例切换为所述主实例;从原来的所述主实例上拉取日志文件,在新的所述主实例上回放;以及,回放完成后,建立与其他的所述从实例之间的主从逻辑。
[0013]可选的,所述数据库主从切换方法还包括:当所述分布式数据库运行时,周期性地在所述主实例的延迟检测表中写入当前的时间戳;所述从实例周期性地获取所述主实例的所述延迟检测表中的时间戳,基于获取到的时间戳和获取到时间戳时的时间计算所述主实例和所述从实例之间的延迟;周期性地获取所述主实例的事务状态和所述从实例的事务状态,从而获取所述主实例和所述从实例之间的事务个数差异;基于所述主实例和所述从实例之间的延迟,以及,所述主实例和所述从实例之间的事务个数差异进行服务等级划分;以及,存储所述服务等级。
[0014]可选的,所述服务等级包括第一服务等级和第二服务等级,基于所述主实例和所述从实例之间的延迟,以及,所述主实例和所述从实例之间的事务个数差异进行服务等级划分的步骤包括:所述主实例和所述从实例之间的事务个数差异小于预设数量或者不超过所述预设数量,则划分为所述第一服务等级中的一个;否则,划分为所述第二服务等级中的一个;所述第一服务等级中的任意一个的优先级高于所述第二服务等级中的任意一个。
[0015]可选的,基于所有所述从实例的所述服务等级判断当前情况是否符合切换条件的步骤包括:若优先级最高的所述服务等级为所述第一服务等级,则符合所述切换条件;否则,不符合所述切换条件。
[0016]可选的,所述第一服务等级包括至少两个子等级,所述第二服务等级包括至少两个子等级,所述第一服务等级的子等级基于所述主实例和所述从实例之间的延迟划分,所述第二服务等级的子等级基于所述主实例和所述从实例之间的延迟划分。
[0017]可选的,所述第一服务等级包括P1等级、P2等级、P3等级和P4等级,所述第二服务等级包括PE1等级、PE2等级、PE3等级和PE4等级,基于所述主实例和所述从实例之间的延迟,以及,所述主实例和所述从实例之间的事务个数差异进行服务等级划分的步骤包括:所述主实例和所述从实例之间的事务个数差异不超过10,所述主实例和所述从实例之间的延迟小于或者等于20秒,划分为P1等级;所述主实例和所述从实例之间的事务个数差异不超过10,所述主实例和所述从实例之间的延迟大于20秒且小于或者等于1分钟,划分为P2等级;所述主实例和所述从实例之间的事务个数差异不超过10,所述主实例和所述从实例之间的延迟大于1分钟且小于或者等于10分钟,划分为P3等级;所述主实例和所述从实例之间的事务个数差异不超过10,所述主实例和所述从实例之间的延迟大于10分钟,划分为P4等级。
[0018]所述主实例和所述从实例之间的事务个数差异超过10,所述主实例和所述从实例之间的延迟小于或者等于20秒,划分为PE1等级;所述主实例和所述从实例之间的事务个数差异超过10,所述主实例和所述从实例之间的延迟大于20秒且小于或者等于1分钟,划分为PE2等级;所述主实例和所述从实例之间的事务个数差异超过10,所述主实例和所述从实例之间的延迟大于1分钟且小于或者等于10分钟,划分为PE3等级;所述主实例和所述从实例之间的事务个数差异超过10,所述主实例和所述从实例之间的延迟大于10分钟,划分为PE4
等级。
[0019]所述服务等级的优先级排序如下:P1>P2>P3>P4>PE1>PE2>PE3>PE4。
[0020]为了解决上述技术问题,本专利技术还提供了一种分布式数据库,所述分布式数据库至少包括两个实例,任意一个所述实例都可以切换为主实例或者从实例,所述主实例和所述从实例之间基于预设逻辑进行数据同步;所述分布式数据库基于上述的数据库主从切换方法管理所述主实例和所述从实例的切换。
[0021]与现有技术相比,本专利技术提供的一种数据库主从切换方法和分布式数据库中,所述数据库主从切换方法包括:当所述主实例异常时,基于所述主实例和所述从实例之间的事务个数差异判断当前情况是否符合切换条件;以及,若符合所述切换条件,则进行主从实例切换;若不符合所述切换条件,则不进行主从实例切换,发送无法进行切换的通知并等待人本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种数据库主从切换方法,其特征在于,应用于一分布式数据库,所述分布式数据库至少包括两个实例,任意一个所述实例都可以切换为主实例或者从实例,所述主实例和所述从实例之间基于预设逻辑进行数据同步;所述数据库主从切换方法包括:当所述主实例异常时,基于所述主实例和所述从实例之间的事务个数差异判断当前情况是否符合切换条件;以及,若符合所述切换条件,则进行主从实例切换;若不符合所述切换条件,则不进行主从实例切换,发送无法进行切换的通知并等待人工干预。2.根据权利要求1所述的数据库主从切换方法,其特征在于,所述数据库主从切换方法还包括:当所述分布式数据库运行时,周期性进行主从状态对比并存储对比结果,所述主从状态对比的过程至少包括获取所述主实例和所述从实例之间的事务个数差异;以及,当所述主实例异常时,基于存储的所述对比结果直接判断当前情况是否符合所述切换条件。3.根据权利要求1或者2所述的数据库主从切换方法,其特征在于,所述数据库主从切换方法包括:基于所述主实例和所述从实例之间的事务个数差异,以及,所述主实例和所述从实例之间的延迟进行服务等级划分,每个所述从实例具有一个独立的所述服务等级;当所述主实例异常时,基于所有所述从实例的所述服务等级判断当前情况是否符合切换条件;以及,若符合所述切换条件,则选择所述服务等级的优先级最高的所述从实例切换为所述主实例。4.根据权利要求3所述的数据库主从切换方法,其特征在于,所述从实例切换为所述主实例的步骤包括:将选定的所述从实例切换为所述主实例;从原来的所述主实例上拉取日志文件,在新的所述主实例上回放;以及,回放完成后,建立与其他的所述从实例之间的主从逻辑。5.根据权利要求3所述的数据库主从切换方法,其特征在于,所述数据库主从切换方法还包括:当所述分布式数据库运行时,周期性地在所述主实例的延迟检测表中写入当前的时间戳;所述从实例周期性地获取所述主实例的所述延迟检测表中的时间戳,基于获取到的时间戳和获取到时间戳时的时间计算所述主实例和所述从实例之间的延迟;周期性地获取所述主实例的事务状态和所述从实例的事务状态,从而获取所述主实例和所述从实例之间的事务个数差异;基于所述主实例和所述从实例之间的延迟,以及,所述主实例和所述从实例之间的事务个数差异进行服务等级划分;以及,存储所述服务等级。6.根据权利要求5所述的数据库主从切换方法,其特征在于,所述服务等级包括第一服
务等级和第二服务等级,基于所述主实例和所述从实例之间的延迟,以及,所述主实例和所述从实例之间的事务个数差异进行服务等级划分的步骤包括:所述主实例和所述从实例之间的事务个数差异小于预设数量或者不超过所述预设数量,则划分为所述第一服务等级中的一个;否则,划分为所述第二服务等级中的一个;所...

【专利技术属性】
技术研发人员:沈亚军周文雅黄炎陈书俊李恒梁广涛
申请(专利权)人:上海爱可生信息技术股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1