CN110730221A - 基于多节点搭建高可用的mysql架构的方法及系统 - Google Patents
基于多节点搭建高可用的mysql架构的方法及系统 Download PDFInfo
- Publication number
- CN110730221A CN110730221A CN201910922963.XA CN201910922963A CN110730221A CN 110730221 A CN110730221 A CN 110730221A CN 201910922963 A CN201910922963 A CN 201910922963A CN 110730221 A CN110730221 A CN 110730221A
- Authority
- CN
- China
- Prior art keywords
- mysql
- server
- vip
- multiple nodes
- building
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/06—Management of faults, events, alarms or notifications
- H04L41/0654—Management of faults, events, alarms or notifications using network fault recovery
- H04L41/0663—Performing the actions predefined by failover planning, e.g. switching to standby network elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Stored Programmes (AREA)
Abstract
本申请公开了一种基于多节点搭建高可用的mysql架构的方法及系统,所述方法包括:至少三个mysql服务器均配置keepalived,且配置相同的vip;所述mysql服务器配置同源复制,相互复制;当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。与现有技术相比,本申请具有如下优点:在mysql官方推出的成熟方案上做了小修改实现,维护成本不高;可用预防脑裂问题发生,脑裂问题容易在2台机器上出现,但是多节点,多了一个节点的出现,极大的降低了脑裂问题。
Description
技术领域
本申请涉及数据库备份领域,具体而言,涉及一种基于多节点搭建高可用的mysql架构的方法及系统。
背景技术
目前采用较多的是主从架构做高可用,主库宕机手动切换请求到从库达到容灾的效果。第二种较多使用的就是采用第三方中间件模式,在主从架构之前做一层代理代替手工切换的过程。第三种采用的是现有的MGR架构,MMM架构,MHA架构来实现高可用。
现有技术中存在如下缺点:
主从架构的方案,需要手动切换,切换过程有损业务质量;
通过代理vip方式切换,有延时,延时切换过程同样有损伤业务;
通过现有的MMM,MGR,MHA来实现,架构复杂,维护复杂;
通过2台mysql服务器配置vip的情况有可能发生脑裂现象。
发明内容
本申请的主要目的在于提供一种基于多节点搭建高可用的mysql架构的方法,包括:至少三个mysql服务器均配置keepalived,且配置相同的vip;所述mysql服务器配置同源复制,相互复制;当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。
可选地,所述mysql服务器的数量为3个。
可选地,所述基于多节点搭建高可用的mysql架构的方法还包括:所述mysql服务器均安装mysql 5.7以上版本,并且分别配置好启动。
可选地,采用binlog row模式复制。
可选地,当vip所在mysql服务器提供服务时,设置仅允许单个节点服务包括:设置复制的IO_thread为stop状态,其它的SLAVE状态的mysql服务器则启动IO_thread,并设置read_only开启。
可选地,基于多节点搭建高可用的mysql架构的方法还包括:
当做切换时候,最后结合设置复制的IO_thread为stop状态,其它的SLAVE状态的mysql服务器则启动IO_thread,并设置read_only开启进行自动设置,完成自动切换过程。
根据本申请的一方面,还提供了一种基于多节点搭建高可用的mysql架构的系统,包括:
至少三个mysql服务器,用于配置keepalived,且配置相同的vip;
同源复制配置模块,用于配置同源复制,相互复制;
设置模块,用于当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及
切换模块,用于当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。
本申请还公开了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
本申请还公开了一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
本申请还公开了一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
与现有技术相比,本申请具有如下优点:
在mysql官方推出的成熟方案上做了小修改实现,维护成本不高;
可用预防脑裂问题发生,脑裂问题容易在2台机器上出现,但是多节点,多了一个节点的出现,极大的降低了脑裂问题。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请一个实施例的基于多节点搭建高可用的mysql架构的方法的流程示意图;
图2是根据本申请一个实施例的流程示意图;
图3是根据本申请一个实施例的计算机设备的示意图;以及
图4是根据本申请一个实施例的计算机可读存储介质的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
请参照图1,本申请一实施例提供了一种基于多节点搭建高可用的mysql架构的方法,其特征在于,包括:
S2:至少三个mysql服务器均配置keepalived,且配置相同的vip;
S4:所述mysql服务器配置同源复制,相互复制;
S6:当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及
S8:当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。
在本申请一实施例中,所述mysql服务器的数量为3个。
在本申请一实施例中,所述基于多节点搭建高可用的mysql架构的方法还包括:所述mysql服务器均安装mysql 5.7以上版本,并且分别配置好启动。
在本申请一实施例中,采用binlog row模式复制。
在本申请一实施例中,当vip所在mysql服务器提供服务时,设置仅允许单个节点服务包括:设置复制的IO_thread为stop状态,其它的SLAVE状态的mysql服务器则启动IO_thread,并设置read_only开启。
在本申请一实施例中,基于多节点搭建高可用的mysql架构的方法还包括:当做切换时候,最后结合设置复制的IO_thread为stop状态,其它的SLAVE状态的mysql服务器则启动IO_thread,并设置read_only开启进行自动设置,完成自动切换过程。
本申请提供了一种基于多节点搭建高可用的mysql架构的系统,包括:
至少三个mysql服务器,用于配置keepalived,且配置相同的vip;
同源复制配置模块,用于配置同源复制,相互复制;
设置模块,用于当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及
切换模块,用于当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。
如图2所示,三个节点A、B、C(三个mysql服务器)都安装mysql 5.7以上版本,并且分别配置好启动;三个节点A、B、C都配置keepalived,配置为同一个vip,其中keepalived可切换vip的判断为检测本机mysql服务是否存活。多节点A、B、C mysql配置同源复制,互相复制。采用的binlog row模式复制。当其中一个节点提供服务时候(VIP所在节点),设置其复制的IO_thread为stop状态,其它的SLAVE状态的节点则启动IO_thread,并设置read_only开启,即表示任何时候只允许单个节点写服务。当做切换时候,keepalived进入新的主节点,VIP切换到新主,其复制不变,再结合第四点的设置参数进行自动设置,完成自动切换过程。
本申请采用mysql现成的技术方案来实现高可用方案,需要结合mysql的一些binlog的row模式、多源复制等特性,限定版本到mysql5.7及以上。采用三台服务器一组,互相复制的方案来实现高可用。
与现有技术相比,本申请具有如下优点:
在mysql官方推出的成熟方案上做了小修改实现,维护成本不高;
可用预防脑裂问题发生,脑裂问题容易在2台机器上出现,但是多节点,多了一个节点的出现,极大的降低了脑裂问题。
MYSQL多源复制:https://www.cnblogs.com/zhujingzhi/p/9648186.html
VIP/keepalived:keepalived是一个基于VRRP协议来实现的服务高可用方案,利用其来避免IP单点故障,通过健康检测,vip漂移方案来实现主服务的自动切换。vip则是虚拟出的一个ip,它可用在部署keepalived的机器上根据触发条件任意漂移到其中的某一台。
多源复制:多源即多个来源,多源复制意思是本机可用接受多个机器的复制来源,相同的复制是幂等性的。
脑裂:计算机软件用语,当2台机器通过vip漂移来做高可用的场景,因为网络问题导致2台机器互相不可访问时候,出现vip同时在2台机器上出现,造成服务无法判断哪一台是真正的主服务。
IO_thread:复制binlog的网络线程,IO_thread可以把对方的binlog复制到本机解析。
MMM/MGR/MHA:现有的流行的mysql高可用架构方案。
请参照图3,本申请还提供了一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的方法。
请参照图4,一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,所述计算机程序在由处理器执行时实现上述任一项所述的方法。
一种计算机程序产品,包括计算机可读代码,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行上述任一项所述的方法。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种基于多节点搭建高可用的mysql架构的方法,其特征在于,包括:
至少三个mysql服务器均配置keepalived,且配置相同的vip;
所述mysql服务器配置同源复制,相互复制;
当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及
当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。
2.根据权利要求1所述的基于多节点搭建高可用的mysql架构的方法,其特征在于,所述mysql服务器的数量为3个。
3.根据权利要求1所述的基于多节点搭建高可用的mysql架构的方法,其特征在于,所述基于多节点搭建高可用的mysql架构的方法还包括:
所述mysql服务器均安装mysql 5.7以上版本,并且分别配置好启动。
4.根据权利要求1所述的基于多节点搭建高可用的mysql架构的方法,其特征在于,采用binlog row模式复制。
5.根据权利要求1所述的基于多节点搭建高可用的mysql架构的方法,其特征在于,当vip所在mysql服务器提供服务时,设置仅允许单个节点服务包括:设置复制的IO_thread为stop状态,其它的SLAVE状态的mysql服务器则启动IO_thread,并设置read_only开启。
6.根据权利要求1所述的基于多节点搭建高可用的mysql架构的方法,其特征在于,基于多节点搭建高可用的mysql架构的方法还包括:
当做切换时候,最后结合设置复制的IO_thread为stop状态,其它的SLAVE状态的mysql服务器则启动IO_thread,并设置read_only开启进行自动设置,完成自动切换过程。
7.一种基于多节点搭建高可用的mysql架构的系统,其特征在于,包括:
至少三个mysql服务器,用于配置keepalived,且配置相同的vip;
同源复制配置模块,用于配置同源复制,相互复制;
设置模块,用于当vip所在mysql服务器提供服务时,设置仅允许单个节点服务;及
切换模块,用于当切换mysql服务器时,keepalived进入新的mysql服务器,且VIP切换至新mysql服务器。
8.一种计算机设备,包括存储器、处理器和存储在所述存储器内并能由所述处理器运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-6中任一项所述的方法。
9.一种计算机可读存储介质,非易失性可读存储介质,其内存储有计算机程序,其特征在于,所述计算机程序在由处理器执行时实现如权利要求1-6中任一项所述的方法。
10.一种计算机程序产品,包括计算机可读代码,其特征在于,当所述计算机可读代码由计算机设备执行时,导致所述计算机设备执行权利要求1-6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910922963.XA CN110730221A (zh) | 2019-09-26 | 2019-09-26 | 基于多节点搭建高可用的mysql架构的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910922963.XA CN110730221A (zh) | 2019-09-26 | 2019-09-26 | 基于多节点搭建高可用的mysql架构的方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110730221A true CN110730221A (zh) | 2020-01-24 |
Family
ID=69218480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910922963.XA Pending CN110730221A (zh) | 2019-09-26 | 2019-09-26 | 基于多节点搭建高可用的mysql架构的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110730221A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276771A1 (en) * | 2005-09-15 | 2009-11-05 | 3Tera, Inc. | Globally Distributed Utility Computing Cloud |
CN102663017A (zh) * | 2012-03-21 | 2012-09-12 | 互动在线(北京)科技有限公司 | 增强MySQL数据库可用性的实现系统及实现方法 |
CN108234191A (zh) * | 2017-05-31 | 2018-06-29 | 深圳市创梦天地科技有限公司 | 云计算平台的管理方法和装置 |
CN110275927A (zh) * | 2019-06-26 | 2019-09-24 | 浪潮卓数大数据产业发展有限公司 | 一种基于MySQL的流式实时数据同步系统 |
-
2019
- 2019-09-26 CN CN201910922963.XA patent/CN110730221A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090276771A1 (en) * | 2005-09-15 | 2009-11-05 | 3Tera, Inc. | Globally Distributed Utility Computing Cloud |
CN102663017A (zh) * | 2012-03-21 | 2012-09-12 | 互动在线(北京)科技有限公司 | 增强MySQL数据库可用性的实现系统及实现方法 |
CN108234191A (zh) * | 2017-05-31 | 2018-06-29 | 深圳市创梦天地科技有限公司 | 云计算平台的管理方法和装置 |
CN110275927A (zh) * | 2019-06-26 | 2019-09-24 | 浪潮卓数大数据产业发展有限公司 | 一种基于MySQL的流式实时数据同步系统 |
Non-Patent Citations (3)
Title |
---|
SHUANGSEQIU1: "《生产环境mysql主从切换的注意事项(vip)》", 《HTTP://BLOG.ITPUB.NET/31447263/VIEWSPACE-2147759/》 * |
WUBX: "《基于MySQL5.7多源复制及Keepalived搭建》", 《HTTPS://CLOUD.TENCENT.COM/DEVELOPER/ARTICLE/1417940?FROM=ARTICLE.DETAIL.1005409》 * |
骏马金龙: "《MySQL高可用之组复制技术(2):配置单主模型的组复制》", 《HTTPS://WWW.CNBLOGS.COM/F-CK-NEED-U/P/9203154.HTML》 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010358B2 (en) | Data migration method and system | |
US9983957B2 (en) | Failover mechanism in a distributed computing system | |
US20160283335A1 (en) | Method and system for achieving a high availability and high performance database cluster | |
CN108270726B (zh) | 应用实例部署方法及装置 | |
CN103414712B (zh) | 一种分布式虚拟桌面管理系统和方法 | |
US10652100B2 (en) | Computer system and method for dynamically adapting a software-defined network | |
CN111460039A (zh) | 关系型数据库处理系统、客户端、服务器及方法 | |
CN116561096A (zh) | 一种基于容器平台的数据库管理方法及系统 | |
CN105959145B (zh) | 一种适用高可用性集群的并行管理服务器的方法及系统 | |
US20240054054A1 (en) | Data Backup Method and System, and Related Device | |
CN114020279A (zh) | 应用软件分布式部署方法、系统、终端及存储介质 | |
CN103793296A (zh) | 一种在集群中用于辅助备份复制计算机系统的方法 | |
CN104052799B (zh) | 一种利用资源环实现高可用存储的方法 | |
CN107786650B (zh) | 一种存储介质和管理策略的同步方法、装置及系统 | |
WO2015196692A1 (zh) | 一种云计算系统以及云计算系统的处理方法和装置 | |
CN112231399A (zh) | 一种应用于图数据库的方法和装置 | |
CN109218386B (zh) | 一种管理Hadoop命名空间的高可用方法 | |
CN110730221A (zh) | 基于多节点搭建高可用的mysql架构的方法及系统 | |
CN116389233A (zh) | 容器云管理平台主备切换系统、方法、装置和计算机设备 | |
US10516625B2 (en) | Network entities on ring networks | |
US20240028611A1 (en) | Granular Replica Healing for Distributed Databases | |
CN111581033B (zh) | 负载均衡方法、系统及装置 | |
CN114422280B (zh) | 网络部署方法、装置、节点及存储介质 | |
Eberhardt et al. | Smac: State management for geo-distributed containers | |
CN117093425A (zh) | 一种数据库高可用的方法、系统、设备和存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200124 |
|
RJ01 | Rejection of invention patent application after publication |