一种基于MySQL数据库双活架构实现方法及系统与流程

文档序号:32436612发布日期:2022-12-06 19:20阅读:32来源:国知局
一种基于MySQL数据库双活架构实现方法及系统与流程
一种基于mysql数据库双活架构实现方法及系统
技术领域
1.本发明涉及数据库异地容灾、多活技术领域,具体为一种基于mysql数据库双活架构实现方法及系统。


背景技术:

2.随着信息化建设的高速发展,越来越多的重要数据以电子化的形式存储和处理,信息系统已经成为企业维持业务运转的关键,而这种数据的存储和处理方式虽然能够提高便利性,但是却很容易数据丢失和损坏。
3.现有技术中,多样化的业务类型导致数据访问需求的日趋复杂化,数据量的急剧攀升也导致数据库服务器不堪重负,企业同样迫切需要提高信息系统的运行效率。目前,常用采用双活数据中心的容灾解决方案解决系统的容灾问题以提升系统的运行效率。
4.但是,当发生故障时,常遇到监控不准确、系统平台不完善、两数据中心网络波动性中断等因素的发生,使得两个数据中心一体化的业务系统会分裂成两个独立的数据中心,使用户很难分辨哪个数据中心的数据为正确的;当出现数据同步失败或者丢失的情况,根据目前的日志排查的方法检查对于大数据量中不同步的数据或者丢失的数据,检查效率较低而且准确性较低。


技术实现要素:

5.本发明的目的在于提供一种基于mysql数据库双活架构实现方法及系统,以解决上述背景技术中提出的问题。
6.为实现上述目的,本发明提供如下技术方案:一种基于mysql数据库双活架构实现方法,所述基于mysql数据库双活架构实现方法包括以下步骤:
7.通过mysql自身半同步复制实现,保证双集群的数据实时一致性;
8.进行物理备份及binlog server,通过每天凌晨定时任务在某个读节点上进行全量备份,通过流传输的方式将备份文件传输到备份机上,并在备份机进行打包压缩流程;
9.实现双中心集群故障切换功能。
10.优选的,实现数据实时同步时,保证双集群的数据实时一致性时,保证两地机房网络延迟问题,采用mysql galera cluster复制集群,实现数据强实时同步,保证两侧集群写入提交在集群内部是实时同步的。
11.优选的,在备份机可以添加定时任务定期删除备份文件;binlogserver是将集群产生的binlog日志实时传输到备份机进行保存,以便用于etl异构到分析数据库或者用于紧急情况下数据恢复;
12.数据的处理基于分布式id,能够唯一定位数据处理操作,并且该操作具备递增趋势;
13.同步组件的稳定性,同步组件可以理解为一种通用服务,需要考虑不同机房间的数据延迟和数据冲突处理机制,保证同步组件服务的稳定,高效;
14.同步组件的高可用,对于同步组件需要根据业务特点做权重处理,考虑不通idc的业务情况,并重点考虑同步组件的数据冗余设计,保证发生异常时能够及时恢复数据。
15.优选的,集群故障切换时,通过mysql原生异步复制可以通过mha管理高可用需要在各自机房内搭建两套高可用,两边集群主节点通过连接高可用的vip来实现主主同步数据;
16.采用了galera作为一个集群则不需要使用高可用组件直接通过集群内部复制原则切换,注意及时处理故障即可;
17.采用galera搭建了两个集群则需要使用高可用组件分别管理,通过提供的vip来实现切换;
18.采用mycat等开源中间件来实现内部集群读写分离及高可用。
19.优选的,主节点所在集群发生failover切换,然后选择某个从节点提升为主节点,其他从节点重新建立主从关系指向新的主节点,然后切换vip到新的主节点上,而另外机房集群主节点的指向关系为vip,所以不需要更改,自动寻找gtid下一个值,集群正常同步;
20.从节点所在集群发生故障,自动剔除集群,然后通过告警通知运维人员及时恢复,恢复后加入集群后首先同步丢失数据,然后再加入集群。
21.一种基于mysql数据库双活架构实现系统,所述该系统由双活模块、备份模块以及高可用模块构成;
22.双活模块,用于通过mysql自身半同步复制实现,保证双集群的数据实时一致性;
23.备份模块,用于进行物理备份及binlog server,通过每天凌晨定时任务在某个读节点上进行全量备份,通过流传输的方式将备份文件传输到备份机上,并在备份机进行打包压缩流程;
24.高可用模块,用于实现双中心集群故障切换功能。
25.优选的,所述双活模块中,实现数据实时同步时,保证双集群的数据实时一致性时,保证两地机房网络延迟问题,采用mysql galera cluster复制集群,实现数据强实时同步,保证两侧集群写入提交在集群内部是实时同步的。
26.优选的,所述备份模块中,在备份机可以添加定时任务定期删除备份文件;binlogserver是将集群产生的binlog日志实时传输到备份机进行保存,以便用于etl异构到分析数据库或者用于紧急情况下数据恢复;
27.数据的处理基于分布式id,能够唯一定位数据处理操作,并且该操作具备递增趋势;
28.同步组件的稳定性,同步组件可以理解为一种通用服务,需要考虑不同机房间的数据延迟和数据冲突处理机制,保证同步组件服务的稳定,高效;
29.同步组件的高可用,对于同步组件需要根据业务特点做权重处理,考虑不通idc的业务情况,并重点考虑同步组件的数据冗余设计,保证发生异常时能够及时恢复数据。
30.优选的,所述高可用模块中,集群故障切换时,通过mysql原生异步复制可以通过mha管理高可用需要在各自机房内搭建两套高可用,两边集群主节点通过连接高可用的vip来实现主主同步数据;
31.采用了galera作为一个集群则不需要使用高可用组件直接通过集群内部复制原则切换,注意及时处理故障即可;
32.采用galera搭建了两个集群则需要使用高可用组件分别管理,通过提供的vip来实现切换;
33.采用mycat等开源中间件来实现内部集群读写分离及高可用。
34.优选的,所述高可用模块中,主节点所在集群发生failover切换,然后选择某个从节点提升为主节点,其他从节点重新建立主从关系指向新的主节点,然后切换vip到新的主节点上,而另外机房集群主节点的指向关系为vip,所以不需要更改,自动寻找gtid下一个值,集群正常同步;
35.从节点所在集群发生故障,自动剔除集群,然后通过告警通知运维人员及时恢复,恢复后加入集群后首先同步丢失数据,然后再加入集群。
36.与现有技术相比,本发明的有益效果是:
37.本发明提出的基于mysql数据库双活架构实现方法及系统支持各种行业相关双活搭建方案;方案设计数据库平台部署、备份机制搭建、高可用架构等多方面,提供整体数据库解决方案;支持目前业界的mysql主流分支版本:oracle官方版本的mysql、percona server、mariadb;高可用解决方案探讨的本质上是低宕机时间解决方案,可以理解成高可用的反面是不可用,绝大部分情况下数据库宕机才会导致数据库不可用。随着技术发展,开源数据库方面很多高可用组件(主从复制、半同步、mgr、mha、galera cluster),对应场景灵活选择。
附图说明
38.图1为本发明实施例三构架图;
39.图2为本发明实施例四构架图。
具体实施方式
40.为了使本发明的目的、技术方案进行清楚、完整地描述,及优点更加清楚明白,以下结合附图对本发明实施例进行进一步详细说明。应当理解,此处所描述的具体实施例是本发明一部分实施例,而不是全部的实施例,仅仅用以解释本发明实施例,并不用于限定本发明实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
41.在本发明的描述中,需要说明的是,术语“中心”、“中”、“上”、“下”、“左”、“右”、“内”、“外”、“顶”、“底”、“侧”、“竖直”、“水平”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“一”、“第一”、“第二”、“第三”、“第四”、“第五”、“第六”仅用于描述目的,而不能理解为指示或暗示相对重要性。
42.在本发明的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。
43.出于简明和说明的目的,实施例的原理主要通过参考例子来描述。在以下描述中,很多具体细节被提出用以提供对实施例的彻底理解。然而明显的是,对于本领域普通技术人员,这些实施例在实践中可以不限于这些具体细节。在一些实例中,没有详细地描述公知方法和结构,以避免无必要地使这些实施例变得难以理解。另外,所有实施例可以互相结合使用。
44.实施例一
45.本发明提供一种技术方案:一种基于mysql数据库双活架构实现方法,所述基于mysql数据库双活架构实现方法包括以下步骤:
46.通过mysql自身半同步复制实现,保证双集群的数据实时一致性;实现数据实时同步时,保证双集群的数据实时一致性时,保证两地机房网络延迟问题,采用mysql galera cluster复制集群,实现数据强实时同步,保证两侧集群写入提交在集群内部是实时同步的;
47.进行物理备份及binlog server,通过每天凌晨定时任务在某个读节点上进行全量备份,通过流传输的方式将备份文件传输到备份机上,并在备份机进行打包压缩流程;在备份机可以添加定时任务定期删除备份文件;binlogserver是将集群产生的binlog日志实时传输到备份机进行保存,以便用于etl异构到分析数据库或者用于紧急情况下数据恢复;数据的处理基于分布式id,能够唯一定位数据处理操作,并且该操作具备递增趋势;同步组件的稳定性,同步组件可以理解为一种通用服务,需要考虑不同机房间的数据延迟和数据冲突处理机制,保证同步组件服务的稳定,高效;同步组件的高可用,对于同步组件需要根据业务特点做权重处理,考虑不通idc的业务情况,并重点考虑同步组件的数据冗余设计,保证发生异常时能够及时恢复数据;
48.实现双中心集群故障切换功能,通过mysql原生异步复制可以通过mha管理高可用需要在各自机房内搭建两套高可用,两边集群主节点通过连接高可用的vip来实现主主同步数据;采用了galera作为一个集群则不需要使用高可用组件直接通过集群内部复制原则切换,注意及时处理故障即可;采用galera搭建了两个集群则需要使用高可用组件分别管理,通过提供的vip来实现切换;采用mycat等开源中间件来实现内部集群读写分离及高可用;主节点所在集群发生failover切换,然后选择某个从节点提升为主节点,其他从节点重新建立主从关系指向新的主节点,然后切换vip到新的主节点上,而另外机房集群主节点的指向关系为vip,所以不需要更改,自动寻找gtid下一个值,集群正常同步;从节点所在集群发生故障,自动剔除集群,然后通过告警通知运维人员及时恢复,恢复后加入集群后首先同步丢失数据,然后再加入集群。
49.实施例二
50.一种基于mysql数据库双活架构实现系统,所述该系统由双活模块、备份模块以及高可用模块构成;
51.双活模块,用于通过mysql自身半同步复制实现,保证双集群的数据实时一致性;实现数据实时同步时,保证双集群的数据实时一致性时,保证两地机房网络延迟问题,采用mysql galera cluster复制集群,实现数据强实时同步,保证两侧集群写入提交在集群内部是实时同步的;
52.备份模块,用于进行物理备份及binlog server,通过每天凌晨定时任务在某个读
节点上进行全量备份,通过流传输的方式将备份文件传输到备份机上,并在备份机进行打包压缩流程;在备份机可以添加定时任务定期删除备份文件;binlogserver是将集群产生的binlog日志实时传输到备份机进行保存,以便用于etl异构到分析数据库或者用于紧急情况下数据恢复;
53.数据的处理基于分布式id,能够唯一定位数据处理操作,并且该操作具备递增趋势;同步组件的稳定性,同步组件可以理解为一种通用服务,需要考虑不同机房间的数据延迟和数据冲突处理机制,保证同步组件服务的稳定,高效;同步组件的高可用,对于同步组件需要根据业务特点做权重处理,考虑不通idc的业务情况,并重点考虑同步组件的数据冗余设计,保证发生异常时能够及时恢复数据;
54.高可用模块,用于实现双中心集群故障切换功能;集群故障切换时,通过mysql原生异步复制可以通过mha管理高可用需要在各自机房内搭建两套高可用,两边集群主节点通过连接高可用的vip来实现主主同步数据;采用了galera作为一个集群则不需要使用高可用组件直接通过集群内部复制原则切换,注意及时处理故障即可;采用galera搭建了两个集群则需要使用高可用组件分别管理,通过提供的vip来实现切换;采用mycat等开源中间件来实现内部集群读写分离及高可用;主节点所在集群发生failover切换,然后选择某个从节点提升为主节点,其他从节点重新建立主从关系指向新的主节点,然后切换vip到新的主节点上,而另外机房集群主节点的指向关系为vip,所以不需要更改,自动寻找gtid下一个值,集群正常同步;从节点所在集群发生故障,自动剔除集群,然后通过告警通知运维人员及时恢复,恢复后加入集群后首先同步丢失数据,然后再加入集群。
55.实施例三
56.参照附图1所示,首先是在双数据中心内部搭建主从架构集群,建议采用一主两从架构,实例参数配置需要打开log_slave_update参数记录从库产生的binlog,还需要开启gtid记录事务编号,方便如果出现数据差异时分析问题。
57.打开参数如下:
58.rpl-semi-sync-master-enabled=1
59.rpl-semi-sync-slave-enabled=1
60.log_slave_updates=1
61.auto_increment_increment=2##自增步长
62.auto_increment_offset=1##自增开始值,a机房为1,b机房设置为2;
63.搭建实例高可用组件,业内实现方案多种,本文以mha为例,通过启动mha管理进程后添加在主节点上的vip,然后两个集群搭建主主同步,分别指向集群的vip,避免集群切换后主从同步断开。由于默认开启了gtid,主从同步会自动寻找下一个未执行的事务id,所以切换还可以正常同步。
64.业务可以根据部署机房连接所在机房的数据库vip直接执行,业务切换后可以实现无感知。
65.实施例四
66.参照附图2所示,在实施例三的基础上,后端数据库可以灵活选择主从架构、galera集群、mgr集群等,然后搭建完成后建立两边主节点的主主同步,参数配置可以参考实施例三。
67.尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1