一种数据库高可用方法及系统技术方案

技术编号:26689505 阅读:20 留言:0更新日期:2020-12-12 02:38
本发明专利技术公开了一种数据库高可用方法,一种数据库高可用方法,包括以下步骤:步骤S1,监控节点对数据库进行周期性监控;步骤S2,监控节点判断出现异常的数据库的类型;步骤S3,监控节点判断主数据库和要被切换的从数据库之间是否存在同步延迟;步骤S4,监控节点根据主数据库的数据库日志对从数据库进行数据补充后返回步骤S3;步骤S5,监控节点通知负载均衡控制器对主数据库和从数据库进行主从切换,随后返回步骤S1。上述技术方案的有益效果是:减少数据库管理员人为干预操作,减少了系统宕机的时间,避免了传统高可用架构由于主从不一致切换主从角色导致数据丢失的情况,降低生产事故发生的概率。

【技术实现步骤摘要】
一种数据库高可用方法及系统
本专利技术涉及数据库高可用
,尤其涉及一种数据库高可用方法及系统。
技术介绍
数据库维护期间,需要数据库管理员进行7X24小时全天候的在线支持。由于性能需要,MYSQL数据库主从架构开启半同步复制,在数据库故障发生后,数据库主从切换,可能需要人为补偿丢失的数据,极大影响了应用的可用性。假如未及时发现数据库故障并且主备切换后发生数据丢失的情况,这样极有可能导致生产事故的发生。特别是对于涉及到交易资金往来的系统,会导致严重的生产事故。在数据库系统故障期间,应用数据的可靠性得不到保障。基于上述描述,现有技术中亟待解决的技术问题在于:当数据库故障发生的时候,如何自动检查主从同步的情况,根据主从同步的情况进行自动的数据补偿操作。换言之,现有技术中不存在一套系统可以在数据库发生故障时自动进行主从切换,并且能够解决切换过程中发生的数据延迟问题。
技术实现思路
根据现有技术中存在的上述问题,现提供一种数据库高可用方法及系统,旨在通过定期检查主从状态,并且根据从库应用数据库日志的情况判断主从延迟的情况,自动补偿从库的数据,减少数据库管理员人为干预操作,减少了系统宕机的时间,避免了传统高可用架构由于主从不一致切换主从角色导致数据丢失的情况,降低生产事故发生的概率。上述技术方案具体包括:一种数据库高可用方法,提供两个数据库、一负载均衡控制器以及一监控节点,负载均衡控制器和监控节点分别连接主数据库和从数据库,监控节点还连接负载均衡控制器;初始状态下,于两个数据库中设置一个作为主数据库,另一个作为从数据库;数据库高可用方法包括以下步骤:步骤S1,监控节点对数据库进行周期性监控,当存在有数据库的运行状态出现异常时转向步骤S2;步骤S2,监控节点判断出现异常的数据库的类型:若为主数据库,则转向步骤S3;若为从数据库,则输出相应的告警信息,随后返回步骤S1;步骤S3,监控节点判断主数据库和要被切换的从数据库之间是否存在同步延迟;若是,则转向步骤S4;若否,则转向步骤S5;步骤S4,监控节点根据主数据库的数据库日志对从数据库进行数据补充后返回步骤S3;步骤S5,监控节点通知负载均衡控制器对主数据库和从数据库进行主从切换,随后返回步骤S1。优选的,步骤S1中,监控节点采用下述方法分别对每个数据库进行周期性监控:步骤S11,监控节点周期性地检测数据库是否有响应,并记录数据库的连续无响应的次数;步骤S12,监控节点判断连续无响应的次数是否超过一预设的第一阈值:若是,则转向步骤S2;若否,则返回步骤S11。优选的,步骤S3具体包括:步骤S31,判断从数据库与主数据库之间的同步延迟是否超过一预设的第一延迟阈值;若是,则判定主数据库和从数据库之间存在同步延迟,转向步骤S4;若否,则判定主数据库和从数据库之间不存在同步延迟,转向步骤S5。优选的,步骤S4具体包括:步骤S41,判断主数据库和从数据库之间的同步延迟是否超过一预设的第二延迟阈值;若是,则转向步骤S42;若否,则转向步骤S43;步骤S42,从主数据库中获取从数据库中缺失的数据库日志,以对从数据库进行数据补充;步骤S43,应用主数据库的数据库日志对从数据库进行数据补充。优选的,若监控节点监测到从数据库的运行状态出现异常,则监控节点根据从数据库的数据库日志分析得到从数据库的异常原因,并向从数据库的数据库控制器发出相应的告警信息,以供数据库控制器进行处理。优选的,数据库日志为BINLOG日志文件。一种数据库高可用系统,包括:两个数据库,用于存储用户数据,初始状态下,于两个数据库中设置一个作为主数据库,另一个作为从数据库;一运行监控模块,分别连接主数据库和从数据库,用于对数据库进行周期性监控并输出一监控信息;一类型判断模块,连接运行监控模块,用于根据监控信息对出现异常的数据库的类型进行判断并输出一类型信息;一延迟判断模块,连接类型判断模块,用于根据类型信息对主数据库和要被切换的从数据库之间是否存在同步延迟进行判断,并输出一第一延迟判断信息;一数据补充模块,连接延迟判断模块,用于根据第一延迟判断信息和主数据库的数据库日志对从数据库进行数据补充并输出一数据同步信息;一负载均衡控制模块,分别连接数据补充模块和数据库,用于根据数据同步信息对主数据库和从数据库进行主从切换。优选的,运行监控模块包括:一运行检测单元,分别连接主数据库和从数据库,用于周期性地检测数据库是否有响应;一运行计数单元,连接运行检测单元,用于记录数据库的连续无响应的次数;一运行判断单元,连接运行计数单元,用于判断连续无响应的次数是否超过一预设的第一阈值;若是,则输出数据库的运行状态出现异常的监控信息;若否,则输出数据库的运行状态正常的监控信息。优选的,延迟判断模块包括:第一延迟判断单元,连接类型判断模块,用于判断从数据库与主数据库之间的同步延迟是否超过一预设的第一延迟阈值;若是,则输出判定主数据库和从数据库之间存在同步延迟的第二判断信息;若否,则输出判定主数据库和从数据库之间不存在同步延迟的第二判断信息。优选的,数据补充模块包括:第二延迟判断单元,连接延迟判断模块,用于判断主数据库和从数据库之间的同步延迟是否超过一预设的第二延迟阈值并输出一第二延迟判断信息;第一数据补充单元,连接第二延迟判断单元,用于根据第二延迟判断信息从主数据库中获取从数据库中缺失的数据库日志,以对从数据库进行数据补充;第二数据补充单元,连接第二延迟判断单元,用于根据第二延迟判断信息和主数据库的数据库日志对从数据库进行数据补充。上述技术方案的有益效果是:提供一种数据库高可用方法及系统,旨在减少数据库管理员人为干预操作,减少了系统宕机的时间,避免了传统高可用架构由于主从不一致切换主从角色导致数据丢失的情况,降低生产事故发生的概率。附图说明图1是本专利技术的较佳的实施例中,一种数据库高可用方法的总体流程图;图2是本专利技术的较佳的实施例中,图1的基础上,对步骤S1做进一步描述的流程图;图3是本专利技术的较佳的实施例中,图1的基础上,对步骤S3做进一步描述的流程图;图4是本专利技术的较佳的实施例中,图1的基础上,对步骤S4做进一步描述的流程图;图5是本专利技术的较佳的实施例中,一种数据库高可用系统的结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的本文档来自技高网...

【技术保护点】
1.一种数据库高可用方法,其特征在于,提供两个数据库、一负载均衡控制器以及一监控节点,所述负载均衡控制器和所述监控节点分别连接所述主数据库和所述从数据库,所述监控节点还连接所述负载均衡控制器;/n初始状态下,于两个所述数据库中设置一个作为主数据库,另一个作为从数据库;/n所述数据库高可用方法包括以下步骤:/n步骤S1,所述监控节点对所述数据库进行周期性监控,当存在有所述数据库的运行状态出现异常时转向步骤S2;/n步骤S2,所述监控节点判断出现异常的所述数据库的类型:/n若为主数据库,则转向步骤S3;/n若为从数据库,则输出相应的告警信息,随后返回所述步骤S1;/n步骤S3,所述监控节点判断所述主数据库和要被切换的所述从数据库之间是否存在同步延迟;/n若是,则转向步骤S4;/n若否,则转向步骤S5;/n步骤S4,所述监控节点根据所述主数据库的数据库日志对所述从数据库进行数据补充后返回所述步骤S3;/n步骤S5,所述监控节点通知所述负载均衡控制器对所述主数据库和所述从数据库进行主从切换,随后返回所述步骤S1。/n

【技术特征摘要】
1.一种数据库高可用方法,其特征在于,提供两个数据库、一负载均衡控制器以及一监控节点,所述负载均衡控制器和所述监控节点分别连接所述主数据库和所述从数据库,所述监控节点还连接所述负载均衡控制器;
初始状态下,于两个所述数据库中设置一个作为主数据库,另一个作为从数据库;
所述数据库高可用方法包括以下步骤:
步骤S1,所述监控节点对所述数据库进行周期性监控,当存在有所述数据库的运行状态出现异常时转向步骤S2;
步骤S2,所述监控节点判断出现异常的所述数据库的类型:
若为主数据库,则转向步骤S3;
若为从数据库,则输出相应的告警信息,随后返回所述步骤S1;
步骤S3,所述监控节点判断所述主数据库和要被切换的所述从数据库之间是否存在同步延迟;
若是,则转向步骤S4;
若否,则转向步骤S5;
步骤S4,所述监控节点根据所述主数据库的数据库日志对所述从数据库进行数据补充后返回所述步骤S3;
步骤S5,所述监控节点通知所述负载均衡控制器对所述主数据库和所述从数据库进行主从切换,随后返回所述步骤S1。


2.如权利要求1所述的数据库高可用方法,其特征在于,所述步骤S1中,所述监控节点采用下述方法分别对每个所述数据库进行周期性监控:
步骤S11,所述监控节点周期性地检测所述数据库是否有响应,并记录所述数据库的连续无响应的次数;
步骤S12,所述监控节点判断所述连续无响应的次数是否超过一预设的第一阈值:
若是,则转向所述步骤S2;
若否,则返回所述步骤S11。


3.如权利要求1所述的数据库高可用方法,其特征在于,所述步骤S3具体包括:
步骤S31,判断所述从数据库与所述主数据库之间的同步延迟是否超过一预设的第一延迟阈值;
若是,则判定所述主数据库和所述从数据库之间存在同步延迟,转向所述步骤S4;
若否,则判定所述主数据库和所述从数据库之间不存在同步延迟,转向所述步骤S5。


4.如权利要求1所述的数据库高可用方法,其特征在于,所述步骤S4具体包括:
步骤S41,判断所述主数据库和所述从数据库之间的同步延迟是否超过一预设的第二延迟阈值;
若是,则转向所述步骤S42;
若否,则转向所述步骤S43;
步骤S42,从所述主数据库中获取所述从数据库中缺失的所述数据库日志,以对所述从数据库进行数据补充;
步骤S43,应用所述主数据库的所述数据库日志对所述从数据库进行数据补充。


5.如权利要求1所述的数据库高可用方法,其特征在于,所述步骤S1中,若所述监控节点监测到所述从数据库的运行状态出现异常,则所述监控节点根据所述从数据库的数据库日志分析得到所述从数据库的异常原因,并向所述从数据库的数据库控制器发出相应的告警信息,...

【专利技术属性】
技术研发人员:严聪
申请(专利权)人:上海瀚银信息技术有限公司
类型:发明
国别省市:上海;31

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

1