基于Galera的数据库集群恢复方法及终端设备技术

技术编号:24756312 阅读:26 留言:0更新日期:2020-07-04 09:12
本发明专利技术提供了一种基于Galera的数据库集群恢复方法,数据库集群包含两个或者两个以上的数据库节点,在全部数据库节点不可用时通过该方法进行同步恢复,方法包括:重启各数据库节点,将各数据库节点目录中所包含的grastate.dat文件中seqno值为‑1的数据库节点作为异常关机的数据库节点;当数据库集群中的数据库节点均为异常关机时,遍历查找出数据库节点的gvwstate.dat文件中所包含的my_uuid等于view_id的数据库节点,以作为启动节点,并以bootstrap模式启动同步操作。通过本申请所揭示的技术方案,有效地避免了数据库集群中残留文件的问题,提高了基于Galera的数据库集群运行时的可靠性与稳定性;并保证了基于Galera的数据库集群的强一致性。

Database cluster recovery method and terminal equipment based on Galera

【技术实现步骤摘要】
基于Galera的数据库集群恢复方法及终端设备
本专利技术涉及数据库
,尤其涉及一种基于Galera的数据库集群恢复方法及终端设备。
技术介绍
传统的MVC单系统架构(ModelViewController)或者是早期的基于PHP、MYSQL及NGINX的架构中,业务与功能都耦合在一起并部署在一个服务器节点上。随着业务量以及QPS迅速增长,现有的传统业务架构已经无法满足海量业务以及QPS的迅速增长。因此,分布式的服务架构应运而生。MySQL数据库是目前云平台中常用的一种数据库架构,其内建的复制功能是构建大型,高性能应用程序的基础。MySQL数据库所具有的主从架构实现了数据库的主从复制和读写分离功能,一方面保证了系统的高可用性,另一方面提升了数据库的并发负载能力及数据分片能力,以保证数据的一致性以及对用户的透明要求。但是,当主服务器数据量很大时,创建从服务器耗时与主服务器的数据量成正比,需要花费大量的时间拷贝数据到从服务器;另外,由于主服务器和各个从服务器所留存的数据是相同的,从而造成磁盘空间的浪费。基于Galera的数据库集群是一种集成了Galera插件的MySQL集群,是一种数据不共享且高度冗余的高可用数据库。Galera数据库是一种在分布式场景中仍然能够保证数据一致性,能够完整实现ACID(数据库事务正确执行)。然而,现有技术中的分布式数据库只能实现最终一致性,而无法实时一致性。这种缺陷导致基于Galera插件的分布式数据库在实时性要求苛刻的行业,例如金融、电商、云计算服务等场景中就会产生非常大的影响,并导致支付失败、重复支付、服务无法响应等问题。基于Galera数据库的集群中的节点因为硬盘故障、电源故障或者掉电时,会导致该节点脱离数据库集群,由此需要运维人员以人工登录后台的方式执行故障排除,并重启数据库集群,但是运维人员实际上不太可能准确知悉那个节点中的数据是最新数据,从而导致重启数据库集群后的数据无法保证强一致性。公开号为CN105471622A的中国专利技术专利公开了一种基于Galera的控制节点主备切换的高可用方法及系统。该现有技术虽然揭示了GaleraMySQL数据库,为了保持控制节点A与控制节点B之间的数据同步,其指出通过心跳检测的手段予以实现,但是心跳检测只能检测到数据库第三层的二维数据表(Table),而无法检测到第四层的字段(Filed),由于只有字段才能表征数据的唯一性。因此,该现有技术存在检测程度不高而导致的主从节点中的数据无法有效同步且存在数据一致性不高的缺陷;同时,该现有技术所揭示的技术方案无法满足三个或者节点数量更多的使用场景。有鉴于此,有必要对现有技术中的基于Galera插件的数据库集群相关技术予以改进,以解决上述存在的诸多问题。
技术实现思路
本专利技术的目的在于揭示一种基于Galera的数据库集群恢复方法及应用该基于Galera的数据库集群恢复方法的一种终端设备,用以克服现有技术所存在的上述缺陷,尤其是为了确保Galera数据库集群在节点出现故障时进行恢复时具有强一致性,简化后期维护难度,提高整个基于Galera的数据库集群运行时的稳定性及可靠性,避免使用多余组件,以挺高基于Galera的数据库集群的可靠性及强一致性。为实现上述第一个专利技术目的,本专利技术提供了一种基于Galera的数据库集群恢复方法,所述数据库集群包含两个或者两个以上的数据库节点,在全部数据库节点不可用时通过所述方法进行同步恢复,所述方法包括:重启各数据库节点,将各数据库节点目录中所包含的grastate.dat文件中seqno值为-1的数据库节点作为异常关机的数据库节点;当数据库集群中的数据库节点均为异常关机时,遍历查找出数据库节点的gvwstate.dat文件中所包含的my_uuid等于view_id的数据库节点,以作为启动节点,并以bootstrap模式启动同步操作。作为本专利技术的进一步改进,在重启各数据库节点之前还包括:在各数据库节点中部署控制服务组件,并通过独立于数据库节点的监控系统确定控制服务组件是否处于开启状态。作为本专利技术的进一步改进,所述监控系统选自Prometheus组件和/或zabbix组件。作为本专利技术的进一步改进,在重启各数据库节点之后还包括:获取并保存数据库节点的IP列表,所述IP列表保存至数据库集群的hosts文件中。作为本专利技术的进一步改进,所述方法还包括:使用Systemd服务或者SQL查询语句对数据库节点是否处于健康状态进行判断,以提取健康数据库节点;当存在唯一的健康数据库节点时,以所述健康数据库节点作为启动节点,以作为基于Galera的数据库集群的主节点,以执行Galera同步操作;当存在两个或者两个以上健康数据库节点时,根据所述hosts文件中任意一个IP列表所对应的数据库节点作为基于Galera的数据库集群的主节点,并以bootstrap模式启动同步操作。作为本专利技术的进一步改进,设定使用Systemd服务或者SQL查询语句对数据库节点进行健康状态进行判断的循环检测周期,所述循环检测周期为30秒至60秒。作为本专利技术的进一步改进,所述方法还包括:统计异常关机的数据库节点的数量,并判断异常关机的数据库节点数量是否小于或者等于1;若是,以异常关机的数据库节点或者将数据库集群的hosts文件中的第一个数据库节点作为启动节点,并以bootstrap模式启动同步操作;若否,遍历查找出数据库节点的gvwstate.dat文件中所包含的my_uuid等于view_id的数据库节点,以作为启动节点,并以bootstrap模式启动同步操作。作为本专利技术的进一步改进,所述控制服务组件使用SSHD服务下发控制服务至各数据库节点。基于相同专利技术思想,本申请还公开了一种终端设备,包括:处理器,存储装置,以及在处理器与存储装置之间建立通信连接的通信总线;所述处理器用于执行存储装置中存储的一个或者多个程序,以实现上述任一项专利技术创造所揭示的基于Galera的数据库集群恢复方法。与现有技术相比,本专利技术的有益效果是:首先,由于不需要为数据库集群单独配置ETCD、Zookeeper等组件,有效地避免了数据库集群中残留文件的问题,并降低了对数据库集群资源的消耗,并使得整个数据库集群的拓扑结构更为简化,且整个同步操作的配置过程及同步过程均可Linux系统所通用的SSHD服务予以实现,因此显著地提高了基于Galera的数据库集群运行时的可靠性与稳定性;其次,本专利技术能够在所有数据库节点均为异常关闭时快速地确定最新的数据库节点,并基于Galera故障恢复策略执行同步操作,以保证各数据库节点中的数据均为最新数据,从而保证了基于Galera的数据库集群的强一致性,有效地解决了数据库节点因断电、设备故障所导致的各个数据库节点中的数据在上电恢复后留存数据不一致的问题。附图说明图1为本专利技术基于Galera的数据库集群恢复方法的整体流程图;本文档来自技高网
...

【技术保护点】
1.一种基于Galera的数据库集群恢复方法,所述数据库集群包含两个或者两个以上的数据库节点,在全部数据库节点不可用时通过所述方法进行同步恢复,其特征在于,所述方法包括:/n重启各数据库节点,将各数据库节点目录中所包含的grastate.dat文件中seqno值为-1的数据库节点作为异常关机的数据库节点;/n当数据库集群中的数据库节点均为异常关机时,遍历查找出数据库节点的gvwstate.dat文件中所包含的my_uuid等于view_id的数据库节点,以作为启动节点,并以bootstrap模式启动同步操作。/n

【技术特征摘要】
1.一种基于Galera的数据库集群恢复方法,所述数据库集群包含两个或者两个以上的数据库节点,在全部数据库节点不可用时通过所述方法进行同步恢复,其特征在于,所述方法包括:
重启各数据库节点,将各数据库节点目录中所包含的grastate.dat文件中seqno值为-1的数据库节点作为异常关机的数据库节点;
当数据库集群中的数据库节点均为异常关机时,遍历查找出数据库节点的gvwstate.dat文件中所包含的my_uuid等于view_id的数据库节点,以作为启动节点,并以bootstrap模式启动同步操作。


2.根据权利要求1所述的基于Galera的数据库集群恢复方法,其特征在于,在重启各数据库节点之前还包括:
在各数据库节点中部署控制服务组件,并通过独立于数据库节点的监控系统确定控制服务组件是否处于开启状态。


3.根据权利要求2所述的基于Galera的数据库集群恢复方法,其特征在于,所述监控系统选自Prometheus组件和/或zabbix组件。


4.根据权利要求2所述的基于Galera的数据库集群恢复方法,其特征在于,在重启各数据库节点之后还包括:获取并保存数据库节点的IP列表,所述IP列表保存至数据库集群的hosts文件中。


5.根据权利要求4所述的基于Galera的数据库集群恢复方法,其特征在于,所述方法还包括:
使用Systemd服务或者SQL查询语句对数据库节点是否处于健康状态进行判断,以提取健康数据库节点;
当存在唯一的健康数据库节点时,以所述健康数据库节点作为启动节点,以作为基于...

【专利技术属性】
技术研发人员:李瑞友
申请(专利权)人:安超云软件有限公司
类型:发明
国别省市:福建;35

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

1