返回顶部
首页 > 资讯 > 数据库 >在MySQL中的高可用集群方案MGR是怎样的
  • 119
分享到

在MySQL中的高可用集群方案MGR是怎样的

2024-04-02 19:04:59 119人浏览 安东尼
摘要

本篇文章给大家分享的是有关在Mysql中的高可用集群方案MGR是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近绝地求生这个游戏太火了

本篇文章给大家分享的是有关在Mysql中的高可用集群方案MGR是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

最近绝地求生这个游戏太火了,当我问我的朋友们你们闲时在干嘛,基本上告诉我的答案都是在"吃鸡"啊!想必很多老铁们也玩,那一定应该知道绝地求生中有把枪叫AWM。此枪伤害裸132点,爆头330,即使三级头爆头必死,无防弹衣或者防弹衣有破损,一枪死。是这个游戏中威力最大的狙击×××,足足是98K的两倍。

那么在mysql领域有没有这么一把威力超大的“枪”呢~答案是必须有啊!但先问你们一个问题。

请问你搭建Mysql复制的时候,还在执行备份恢复,在从库进行change master to的操作嘛?如果是那你可就真的落后了。

今天介绍MySQL官方推荐的一款高可用集群方案MySQL Group Replication。简称:MGR(组复制)。它是官方推出的一种基于Paxos协议的状态机复制,彻底解决了基于传统的异步复制和半同步复制中数据一致性问题无法保证的情况。也让MySQL数据库涉及的领域更广,彻底拥有了打开互联网金融行业的大门。2016年12月 MySQL Group Replication推出了第一个GA版本发布在MySQL5.7.17中。但目前直接投入到生产环境中使用,风险还是比较大。建议等其越来越成熟之后,我们再真正投入使用。

随着MySQL8.0版本即将与我们见面,再配合官方逐渐成熟的高可用集群 Group Replication方案,到那时再看看谁还是我们MySQL的对手,全都不在了!MySQL数据库就是作者的信仰,爱你无怨无悔。

MGR组复制原理

先来谈谈什么叫做组复制。组复制是一种可用于实现容错系统的技术。复制组是一个通过消息传递相互交互的server集群。复制组由多个server成员组成,如下图的master1,master2,master3,所有成员独立完成各自的事务。当客户端先发起一个更新事务,该事务先在本地执行,执行完成之后就要发起对事务的提交操作了。在还没有真正提交之前需要将产生的复制写集广播出去,复制到其他成员。如果冲突检测成功,组内决定该事务可以提交,其他成员可以应用,否则就回滚。最终,这意味着所有组内成员以相同的顺序接收同一组事务。因此组内成员以相同的顺序应用相同的修改,保证组内数据强一致性。

在MySQL中的高可用集群方案MGR是怎样的

MGR组复制模式

组复制可以在两种模式下运行。 在单主模式下,组复制具有自动选主功能,每次只有一个 server成员接受更新,其他成员只提供读服务。在多主模式下运行时,所有的 server 成员都可以同时接受更新,没有主从之分,成员角色是完全对等的。 组复制默认情况下是单主模式,我们可以通过设置参数group_replication_single_primary_mode=off,让其变成多主模式。本章的实战部分就是以多主模式进行MGR复制的搭建。

MGR特性介绍

  1. 完成了真正的多节点读写的集群方案。

  2. 基于原生复制及paxos协议的组复制技术,并以插件的方式提供,实现了数据的强一致性

  3. 由于是多节点读写,failover切换变得更加简单

  4. 增加删除节点,自动完成同步数据和更新组内信息的操作。扩展性地增强
    虽然在MGR的多主模式下,受到不能支持串行隔离级别和不支持外键级联操作的限制条件。而且目前MySQL版本中对DDL语句操作无法实现回滚,导致MGR无法对DDL语句做数据冲突检验,所以DDL语句在MGR中并发执行存在隐患。但这些都不能阻挡MGR的发布所带来的开创新时代的意义。让我们一起期待这个追求极致完美的MySQL数据库,未来更加璀璨夺目。

MGR搭建实战演练

环境介绍:这里我们准备三个节点,数据库版本使用MySQL5.7.17

数据库IP地址 数据库版本信息 主机名 Server-id

192.168.56.101  MySQL-5.7.17    node2   1013306
192.168.56.102  MySQL-5.7.17    node3   1023306
192.168.56.103  MySQL-5.7.17    proxysql    1033306

实战第1步:
在三个节点上执行安装MySQL5.7操作。(此步省略,详情请见书中第一部分第二章)
实战第2步:
在三个节点上分别设置hostname和ip地址的映射关系
在MySQL中的高可用集群方案MGR是怎样的
实战第3步:
在三个节点上分别创建复制账号,命令如下

GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.56.%' IDENTIFIED BY '123456';

实战第4步:
在三个节点上分别安装GR插件,命令如下

INSTALL PLUGIN group_replication SONAME 'group_replication.so';

组件安装完成之后,展示结果:

root@db 13:23:  [(none)]> show plugins;

在MySQL中的高可用集群方案MGR是怎样的
实战第5步:
在三个节点分别配置各自的集群参数文件,配置完成之后重启数据库
192.168.56.101参数文件配置展示:(剩下两个节点同理)

Group Replication

server_id = 1013306
gtid_mode = ON
enforce_gtid_consistency = ON
master_info_repository = TABLE
relay_log_info_repository = TABLE
binlog_checksum = NONE
log_slave_updates = ON
log_bin = binlog
binlog_fORMat= ROW
transaction_write_set_extraction = XXHASH64
loose-group_replication_group_name = '1f2cee29-f9a2-11e7-8cbb-08002783b39d'
loose-group_replication_start_on_boot = off
loose-group_replication_local_address = 'node2:33061'
loose-group_replication_group_seeds ='node2:33061,node3:33062,proxysql:33063'
loose-group_replication_bootstrap_group = off
loose-group_replication_single_primary_mode=off 
loose-group_replication_enforce_update_everywhere_checks=true

重点参数详解:(一定要记住这些)
MGR一定要开启GTID功能gtid_mode = ON,enforce_gtid_consistency = ON
MGR在当前MySQL版本中,必须要设置binlog_checksum=none,并且binlog_format=row
MGR需要多源复制功能,所以需要将主从库之间的信息记录到表中。设置master_info_repository = TABLErelay_log_info_repository = TABLE
MGR中开启主键信息采集功能:transaction_write_set_extraction= XXHASH64
MGR中把该参数group_replication_single_primary_mode关闭目的是搭建多主模式。如果搭建单主模型,保持默认参数即可。
MGR中需要设置组的名字,该group_replication_group_name是通过select uuid()来生成的。
MGR中本地成员的地址由该参数group_replication_local_address决定,本例中当前节点是node2。后面的端口是每个节点都需要一个独立的tcp端口号,节点之间通过这个端口号进行通信。
MGR中其他成员的地址由这个参数group_replication_group_seeds决定
MGR采取多主模式时,需要让该参数group_replication_single_primary_mode=off(默认是单主模式)。
于此同时需要将该参数group_replication_enforce_update_everywhere_checks=true。目的是为了做多主模式限制检测。
注:加载到参数文件里面,需要在每个参数的前面加loose。
这里再强调一个参数group_replication_auto_increment_increment。该参数代表自增属性,默认值为7。我们要保证每个成员的该值相同,并且建议该参数的设置尽量比组内成员的个数大一些,方便后期集群的扩展。

实战第6步:
在192.168.56.101上启动首个节点的MGR集群服务。命令如下:

CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWord='123456' FOR CHANNEL 'group_replication_recovery'

(MGR需要该异步复制通道,实现新节点加入集群自动从其他节点复制数据的目的,不需要手工指定从哪个节点复制,master_host和master_port信息。都是自动完成)
SET GLOBAL group_replication_bootstrap_group = ON;
(执行初始化操作,只有首个节点需要这一步操作)
START GROUP_REPLICATION;
启动成功之后,查看节点状态信息。命令如下

SELECT * FROM performance_schema.replication_group_members;

关闭初始化操作 命令如下:

SET GLOBAL group_replication_bootstrap_group = off;

注:replication_group_members表中MEMBER_STATE字段状态为ONLINE,再执行关闭初始化命令。
在MySQL中的高可用集群方案MGR是怎样的
实战第7步:
在192.168.56.102上面启动第二个节点的mgr集群服务。命令如下

CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';
set global group_replication_allow_local_disjoint_gtids_join=ON;  
START GROUP_REPLICATION;

启动成功之后,查看节点状态信息。命令如下

 SELECT * FROM performance_schema.replication_group_members;

在MySQL中的高可用集群方案MGR是怎样的
实战第8步:
在192.168.56.103上面启动第三个节点的mgr集群服务。命令如下

CHANGE MASTER TO MASTER_USER='repl', MASTER_PASSWORD='123456' FOR CHANNEL 'group_replication_recovery';
set global group_replication_allow_local_disjoint_gtids_join=ON;  
START GROUP_REPLICATION;

启动成功之后,查看节点状态信息。命令如下:

 SELECT * FROM performance_schema.replication_group_members;

可见启动成功之后,三个成员的状态都是ONLINE,证明已经开始正常工作了。真正可以实现多节点的读写操作了。

以上就是在MySQL中的高可用集群方案MGR是怎样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: 在MySQL中的高可用集群方案MGR是怎样的

本文链接: https://lsjlt.com/news/61322.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 在MySQL中的高可用集群方案MGR是怎样的
    本篇文章给大家分享的是有关在MySQL中的高可用集群方案MGR是怎样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。最近绝地求生这个游戏太火了...
    99+
    2024-04-02
  • MySQL中MHA高可用集群是怎样的
    本篇文章为大家展示了MySQL中MHA高可用集群是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、什么是MHA传统的主从复制如果主库宕机,其余从库不会自动的...
    99+
    2024-04-02
  • MySQL MHA集群方案是怎样的
    本篇文章为大家展示了MySQL MHA集群方案是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。MySQL MHA集群方案调研 1  MHA集群的基本...
    99+
    2024-04-02
  • mysql高可用中MMM高可用mysql方案是怎么样的
    这期内容当中小编将会给大家带来有关mysql高可用中MMM高可用mysql方案是怎么样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。 MMM高可用mysql方案 ...
    99+
    2024-04-02
  • MySQL项目之基于ProxySQL+keepalived的MGR高可用集群
    文章目录 项目名称项目描述项目架构图读写请求转发流程图项目环境项目步骤详细步骤一、配置好ip地址,修改主机名,在三台DBS上添加host别名映射二、配置ansible1.安装mysql2.安装...
    99+
    2023-09-05
    mysql linux 数据库 运维
  • Oracle的高可用集群方案有哪些
    这篇文章主要介绍“Oracle的高可用集群方案有哪些”,在日常操作中,相信很多人在Oracle的高可用集群方案有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Oracle...
    99+
    2024-04-02
  • MongoDB搭建高可用集群的案例
    小编给大家分享一下MongoDB搭建高可用集群的案例,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、规划好端口ip ...
    99+
    2024-04-02
  • MySQL高可用集群的VIP切换
    一、目的 实现在mysql高可用集群的VIP切换,不涉及数据补偿 二、基础环境 python3.0+ 三、具体三大部分 1、启动条件检测 检测集群是否down机 方式 select 1 检测主库是否有VIP绑定 方式是 采用...
    99+
    2020-04-24
    MySQL高可用集群的VIP切换
  • MySQL中的MMM集群部署是怎样的
    MySQL中的MMM集群部署是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MySQL-MMM集群部署MMM(Maste...
    99+
    2024-04-02
  • mysql 集群配置是怎样的
    今天就跟大家聊聊有关mysql 集群配置是怎样的,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。 mysql 复制主节点...
    99+
    2024-04-02
  • ELK 在 Spark集群的应用是怎样的
    这期内容当中小编将会给大家带来有关ELK 在 Spark集群的应用是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。概述大数据处理技术越来越火,云计算平台也如火如荼,二者犹如 IT 列车的两个车轮,相...
    99+
    2023-06-04
  • 构建双vip的高可用MySQL集群
    目录一、 项目描述:二、项目环境:二、项目步骤:三、项目概念图:四、部署zabbix监控系统4.1 准备:4.2 步骤:五、项目心得:一、 项目描述:     本项目的目的是: 构...
    99+
    2024-04-02
  • Linux上怎么部署高可用的MySQL集群
    在Linux上部署高可用的MySQL集群通常可以通过使用MySQL官方提供的MySQL Group Replication或者Per...
    99+
    2024-05-06
    Linux MySQL
  • MySQL中怎么实现集群高可用架构
    今天就跟大家聊聊有关MySQL中怎么实现集群高可用架构,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL+DRDB架构通过DRBD基于bloc...
    99+
    2024-04-02
  • Redis集群高可用配置的方法是什么
    Redis集群高可用配置的方法有以下几种: 主从复制:通过配置Redis实例的主从关系,主节点负责写操作,从节点负责读操作和主节...
    99+
    2023-10-24
    Redis
  • hadoop高可用集群搭建的方法是什么
    搭建Hadoop高可用集群通常需要使用Hadoop的高可用组件,如ZooKeeper和HA(High Availability)。以...
    99+
    2024-03-13
    hadoop
  • MySQL高可用集群的介绍以及用法
    MySQL高可用集群的介绍以及用法,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1 MMM概述1.1 关于mysql-mmmM...
    99+
    2024-04-02
  • CoroSync+Drbd+MySQL如何实现MySQL的高可用集群
    这篇文章主要介绍CoroSync+Drbd+MySQL如何实现MySQL的高可用集群,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!节点规划:node1.huhu.com172.16....
    99+
    2024-04-02
  • linux集群中的keepalived是怎么样的
    本篇文章为大家展示了linux集群中的keepalived是怎么样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Keepalived是一个基于VRRP协议来实现的WEB服务高可用方案,可以利用其来...
    99+
    2023-06-16
  • 怎么在MySQL数据库中实现MMM高可用群集架构
    这篇文章给大家介绍怎么在MySQL数据库中实现MMM高可用群集架构,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。MMM高可用架构说明mmm_mond:监控进程,负责所有的监控工作,决定...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作