一种解决PXC异地多活脑裂现象的数据管理系统的制作方法

文档序号:37158205发布日期:2024-02-26 17:23阅读:15来源:国知局
一种解决PXC异地多活脑裂现象的数据管理系统的制作方法

本发明涉及云计算与大数据,特别涉及一种解决pxc异地多活脑裂现象的数据管理系统。


背景技术:

1、现在常用的mysql数据库高可用方案有两种。一种是主从复制方案,即常见的高可用mha(master high availability)架构,一种是percona xtradb cluster集群方案,以下简称pxc,两者机制不同,各有千秋。由于mha在数据库一致性方面和数据同步方面存在缺陷,所以越来越多的项目方案采用pxc架构模式。

2、pxc(percona xtradb cluster)是一个开源的mysql高可用解决方案,pxc集群架构模式与主从复制方案相比最显著的特点就是解决了诟病已久的复制延迟问题,采用强同步的数据同步方式,基本上可以达到实时同步,而且集群的各个节点之间的关系是对等的,保证了数据的一致性和完整性。

3、异地多活是大数据时代的一种新型需求,在多个区域之间部署多套系统,系统之间共用一套数据库服务,无论哪个区域的数据库服务宕机,整个数据库集群依然可以正常提供数据服务。在实际生产环境采用pxc架构方式部署异地多活高可用系统时,在畅享数据库服务高可用的同时,也难以避免地会出现脑裂故障,从而导致数据库服务不可用,造成一定地损失。脑裂即指pxc集群内的节点超过一半以上节点故障(宕机、网络不可达等)的话,即使此时还有存活的节点正常运行数据库服务,但是依然不能正常对外提供服务的现象。因此,如果某个节点数量多的区域整体故障了,或者多个区域的节点故障,造成剩余存活节点数量不足一半的情况,都会导致数据库服务的不可用,无法做到真正的数据库异地多活高可用。

4、然而pxc集群无法自行从脑裂状态恢复,必须运维人员进行人工修复,而修复过程需要依次排查节点故障原因,节点故障顺序,按照一定的步骤进行集群恢复和数据同步。其中步骤繁琐,还会有数据丢失的风险,而且恢复过程中数据库服务无法提供服务,再加上从故障到发现再到响应解决,必然需要一定的时间,因此对于人力、成本、高可用都是一种挑战。此外,pxc集群的部署方式也相对繁琐,对后期维护也很不友好。


技术实现思路

1、本发明的目的旨在至少解决所述技术缺陷之一。

2、为此,本发明的目的在于提出一种解决pxc异地多活脑裂现象的数据管理系统,可以自动提供异地多活高可用数据库服务,解决pxc数据库脑裂问题和部署维护困难的问题。

3、为了实现上述目的,本发明的实施例提供一种解决pxc异地多活脑裂现象的数据管理系统,包括:控制中心和服务中心,其中,所述控制中心和所述服务中心通过内部网络连通;

4、所述控制中心用于检测所述服务中心的状态,并向所述服务中心发送配置信息,以对所述服务中心提供的服务进行控制管理,其中,所述控制中心包括:集群初始化模块、集群状态监测模块、脑裂状态修复模块、数据同步模块和集群状态恢复模块,

5、所述集群初始化模块用于实现数据库服务的集群初始化工作,为多个区域之间的服务中心建立连接,搭建统一的集群;

6、所述集群状态监测模块用于检测各个区域内各个节点的运行状态,采集节点的监测数据,并根据采集到的所述监测数据进行数据服务调度,如果检测到服务进入脑裂状态,则向所述脑裂状态修复模块发送脑裂状态标志;

7、所述脑裂状态修复模块用于接收所述集群状态监测模块发送的脑裂状态标志,对脑裂的区域节点数据库进行修复工作;

8、所述数据同步模块用于实现各个节点之间的数据同步;

9、所述集群状态恢复模块用于在没有发生脑裂情况下,当检测到有节点宕机后,将宕机节点重启并加入集群的工作;在发生脑裂情况下,所述集群状态恢复模块在所述数据同步模块对脑裂区域数据同步之后,将脑裂集群搭建为统一的集群提供数据服务的工作;在所有节点均宕机然后启动之后,所述集群状态恢复模块调用集群初始化程序将各个区域的节点搭建为统一的集群,以提供数据库服务的工作;

10、所述服务中心用于统一调度pxc数据库集群、haproxy负载均衡集群和keepalived虚拟ip服务,根据所述控制中心下发的配置信息进行对应的配置更改、pxc集群的自动构建、haproxy负载均衡的均衡策略实施、虚拟映射的主从配置。

11、进一步,所述集群初始化模块执行初始化工作包括如下步骤:

12、(1)导入加载优化后的pxc镜像;

13、(2)创建持久化存储,以用于数据恢复;

14、(3)在节点之间搭建swarm群;

15、(4)在节点之间创建共享网络;

16、(5)向各个节点导入配置文件;

17、(6)各个节点加载所述配置文件,启动pxc数据库服务;

18、(7)各个节点加载所述配置文件,启动haproxy服务;

19、(8)各个节点加载所述配置文件,启动keepalived服务。

20、进一步,所述集群初始化模块在系统初始化时或者芯片第一次联网连通时进行工作。

21、进一步,所述集群状态监测模块采集的监测数据包括:节点cpu数据、内存占用比例、节点wsrep_cluster_weight存活节点数量数据、节点wsrep_cluster_size所有节点数量数据、节点wsrep_cluster_status脑裂状态数据和节点wsrep_incoming_addresses数据。

22、进一步,当所述节点wsrep_cluster_weight存活节点数量数据的小于节点数量时,则判断集群内有故障节点;

23、所述节点wsrep_incoming_addresses数据在正常情况下是各个节点的id和端口排列,通过和堆栈内的节点value值进行比对,获取故障节点的id;

24、所述节点wsrep_cluster_status脑裂状态数据的值正常情况下为primary,表示集群正常提供服务;当集群进入脑裂状态时,该值变为non-primary。

25、进一步,所述集群状态监测模块将检测到的数据进行图形化展示,进行分析统计操作。

26、进一步,所述脑裂状态修复模块对脑裂的区域节点数据库进行恢复工作,包括如下步骤:

27、(1)在脑裂区域内各自选择一个节点;

28、(2)修改选中节点的数据文件;

29、(3)删除其余节点的数据文件;

30、(4)将脑裂区域的各个节点的数据库服务进行关闭;

31、(5)启动脑裂区域选中的节点的数据库服务;

32、(6)启动其余节点的数据库服务,脑裂状态消失,数据库服务恢复使用。

33、进一步,所述数据同步模块在没有脑裂情况和出现脑裂情况,实时节点之间的数据同步,

34、(1)没有脑裂情况:节点宕机后恢复数据库服务,将存活节点的数据增量提交到宕机恢复的节点上,以保证数据的可用性,在数据同步后,将宕机节点状态修改为可提供服务状态;

35、(2)出现脑裂的情况:将各个区域的数据库增量语句在另外区域执行,自增列的数据重新录入,对数据冲突操作根据预先设置的配置文件优先级和时间进行针对性的同步,以达到各个区域的数据一致性。

36、进一步,在发生脑裂情况下,所述集群状态恢复模块执行如下动作:

37、(1)调用脑裂状态修复模块对脑裂的区域节点数据库进行修复工作,以使得脑裂服务可以正常提供服务;

38、(2)调用数据同步模块对各个节点之间的数据同步,以使得脑裂集群之间的数据保持一致性;

39、(3)在脑裂区域网络连通后,修改主节点区域的主节点的gradata.dat文件,将该节点序列设为1,然后启动主节点,之后清理其它节点的gradata.dat文件,启动其余节点的数据库服务,以使得脑裂集群重新成为可用的统一集群提供服务。

40、进一步,在所有节点均宕机然后启动之后,所述集群状态恢复模块进入主节点修改gradata.dat文件,将序列值设为1,启动主节点的数据库服务,启动剩余区域节点的数据库服务,此时各个节点进行通信,形成一个统一的数据库集群提供数据库服务。

41、根据本发明实施例的解决pxc异地多活脑裂现象的数据管理系统,主要解决了pxc集群脑裂状态无法提供数据库服务且无法自行恢复的问题,实现了pxc集群脑裂状态的自动恢复功能,正常提供数据库服务的需求,具有以下技术效果:

42、(1)脑裂故障自动修复:当集群内部多个节点不可用,触发脑裂状态的条件时,通过脑裂状态自动修复程序将各个节点的状态修复,正常提供数据库服务,无需人工干预。解决了pxc集群脑裂现象需要人工干预恢复的问题,进一步增加了系统的高可用能力。

43、(2)集群数据同步:当集群内部故障节点恢复正常,或者分裂的集群统一时,进行数据库数据同步工作,保证数据的一致性;

44、(3)集群状态自恢复:当故障节点恢复正常,自动加入集群,进行数据同步,恢复集群的状态,提供数据库服务;

45、(4)便捷部署:简化集群搭建过程,优化系统部署、配置过程,只需要修改一个配置文件,即可根据场景需求,一键式部署,方便区域的扩展和节点的扩充,保证网络连通即可一键部署,极大的方便了系统的搭建和后期的运维工作。

46、(5)低内聚、高耦合:通过将系统录入芯片,实现了插拔式扩展集群和移植集群的功能,进一步提高了系统的健壮性。

47、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1