Mysql8 MGR集群操作图解

声明与简介

本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理。本文主要介绍mysql的MGR集群的操作。

MySQL Group Replication(MGR)是MySQL官方在5.7.17版本引进的一个数据库高可用与高扩展的解决方案,以插件形式提供,实现了分布式下数据的最终一致性。其特点如下:

  • 高一致性:基于分布式paxos协议实现组复制,保证数据一致性;
  • 高容错性:自动检测机制,只要不是大多数节点都宕机就可以继续工作,内置防脑裂保护机制;
  • 高扩展性:节点的增加与移除会自动更新组成员信息,新节点加入后,自动从其他节点同步增量数据,直到与其他节点数据一致;
  • 高灵活性:提供单主模式和多主模式,单主模式在主库宕机后能够自动选主,所有写入都在主节点进行,多主模式支持多节点写入

:1 当前MGR集群验证环节在VVMware虚拟机内。

2 当前虚拟机内mysql库运行在Centos 8内,版本号是 8.0.23、端口号3306。

3 当前验证环境是3台版本一致(一样)的mysql数据库的主机:192.168.111.128(host_128)是单主节点,host_129、host_130是从节点。

4 在上述三组主机环境内搭建好单主模式的MGR集群,详见链接:Mysql 8 group replication组复制集群单主配置图解

MGR集群操作

单主主机切换

-- Step 1: 查看当前MGR集群状态以及单主,这里是Host_128。
-- 命令可在集群内任意节点执行
SELECT * FROM performance_schema.replication_group_members;

-- Step 2: 指定Host_130为单主,这里server_uuid对应Step1里对应主机查到的MEMBER_ID。
SELECT group_replication_set_as_primary('3785ac24-b078-11eb-a14a-000c2937f3b0');

-- Step 3:查看当前MGR集群状态以及单主,这里已经切换到Host_130
SELECT * FROM performance_schema.replication_group_members;

-- Step 5 执行insert验证单主读写
-- Host_128里执行insert语句,tab_test有id和memo两个字段,如果没有该表,可自行创建。
insert into tab_test values(2,'Not a single Primary now');

-- Step 6 执行insert验证单主读写
-- Host_130里执行insert语句,tab_test有id和memo两个字段,如果没有该表,可自行创建。
insert into tab_test values(2,'Not a single Primary now');

单主切换多主

-- Step 1:单主节点上执行多主模式切换
SELECT group_replication_switch_to_multi_primary_mode()

-- Step2 :查看当前MGR集群状态以及单主,这里已经切换到Host_130,此时三台主机的MEMBER_ROLE都是PRIMARY。
SELECT * FROM performance_schema.replication_group_members;

-- Step 3: 验证下Host_128是否可插入数据。此时可正常插入。同理Host_129、Host_130
insert into tab_test values(3,'I''m in primary role again');
select @@hostname,A.* from tab_test A;

多主切换单主

类似单主切换多主,这里使用单主到多主的切换命令。这次我们选择主机host_129,它的Member_ID是7edd8b92-b077-11eb-8ffe-000c2936760d。命令可在任意节点上执行,当前执行于host_128。

-- Step1:单主切换多主
SELECT group_replication_switch_to_single_primary_mode(‘7edd8b92-b077-11eb-8ffe-000c2936760d’);

-- Step 2:查看当前MGR集群状态以及单主,这里已经切换到Host_129
SELECT * FROM performance_schema.replication_group_members;

从节点停止复制

-- 在单主节点host_129上停止复制,这里发现其MEMBER_STATUS为OFFLINE
-- Step 1:停止复制
STOP GROUP_REPLICATION;

-- Step 2:查看当前MGR集群状态,此时Host_128被选举为Primary,而Host_130为SECONDARY。
SELECT * FROM performance_schema.replication_group_members;

问题

-- Issue1: 从节点执行单主切换多主命令报错,需要在单主节点执行。
SELECT group_replication_switch_to_multi_primary_mode()

Mysql8 group replication组复制集群单主多主模式切换相关推荐

  1. Mysql 8 group replication组复制集群单主配置图解

    Mysql 8 MGR集群单主配置图解 声明与简介 本文的数据来自网络,部分代码也有所参照,这里做了注释和延伸,旨在技术交流,如有冒犯之处请联系博主及时处理.本文主要介绍mysql的MGR集群的配置. ...

  2. 炫“库”行动-人大金仓有奖征文-KingbaseES V8R6 手工创建主备流复制集群案例

    [本文正在参与炫"库"行动-人大金仓有奖征文] CSDNhttps://marketing.csdn.net/p/98bd30353e7cb998b6070a89e8b91edb ...

  3. mysql双节点安装_快速安装及配置MySQL Replication双主节点集群--及改变数据保存目录...

    192.168.1.101  master/slave 192.168.1.102  slave 192.168.1.103  slave 操作系统均为centos6.5 原理图: 1. 分别安装my ...

  4. redis 复制集群搭建

    前言 redis 复制集群是开发中一种比较常用的集群模式,本篇演示如何在centos7上快速搭建一个redis复制集群: 环境准备 1.基于centos7系统的服务器(或者云服务器): 2.redis ...

  5. DM MPP集群(两节点主备)

    1. 前言 DM 大规模并行处理 MPP 是基于达梦数据库管理系统研发的完全无对等共享式集群,在 DM MPP 集群中支持对各 DM 数据库实例同时运行并构建一个 大规模的并行计算网络,向外界为不同应 ...

  6. 如何重启数据库服务(包含单实例/流复制/集群)

    目录 环境 文档用途 详细信息 环境 系统平台:N/A 版本:4.3.4.5,4.3.4.6,4.3.4.7,4.3.4.8,4.3.4.9,4.5 文档用途 本文档概述了单实例数据库.流复制环境和集 ...

  7. Mongodb3.4.4复制集群+分片配置文档

    2019独角兽企业重金招聘Python工程师标准>>> 1.   复制 1.1. 复制简介 MongoDB复制是将数据同步在多个服务器的过程. 复制提供了数据的冗余备份,并在多个服务 ...

  8. Greenplum【集群搭建 02】cgroup工具安装+用户资源组配置+集群资源组配置+数据库资源组配置+资源组相关信息(一篇学会资源组配置)

    采用资源组的形式管理数据库集群的内存.cpu等信息,非特殊说明,需要在集群每台机器上执行. 1.安装cgroup工具 # 1.安装 yum install -y libcgroup-tools# 如果 ...

  9. 云原生|kubernetes|部署MySQL一主多从复制集群(基于Binlog+Position的复制)

    前言: MySQL集群的架构比较多,目前来说,基本没有一个统一的标准,常见的集群架构是MySQL cluster(官方的)或者简单的一主多从式集群.下面说一下主从复制的一下概念. MySQL 主从复制 ...

最新文章

  1. eAccelerator(eacc)安装配置笔记
  2. 无盘服务器pnp,深入解读无盘PNP方法,无盘系统PNP并不神秘
  3. Jquery getJSON方法分析(一)
  4. 计算机专业的一个四年工作的总结
  5. php openssl加密数据长度,PHP使用openssl解密数据(用mcrypt加密)
  6. Android--pendingIntent Intent
  7. linux集群时间同步搭建
  8. BIO、NIO、AIO,还傻傻分不清?
  9. 实话实说?基金公司“存量时代”的创新
  10. linux多线程编程书籍推荐:linux大牛之路从这几本书开始
  11. 51单片机驱动8位数码管(74HC595驱动)滚动显示
  12. 全年无限次免费畅读电子书,这份大礼包你想不想要?
  13. Linux从删库到跑路--常用命令
  14. 提高禁毒意识,vr全景直观感受毒品危害
  15. 即使不跳槽,你也应该做的三件事情
  16. 使用python中的pymrmr模块来进行特征提取,深入学习mRMR(最大相关最小冗余准则)
  17. 组织技术部的需求评审会
  18. powershell解压缩文件
  19. H265封装成RTP流(一)
  20. 【Pandas】返回 视图 还是 副本?SettingwithCopyWarning 的原理和解决方案(摘录转载)

热门文章

  1. VTK:参数样条用法实战
  2. wxWidgets:你好世界示例
  3. boost::process::group相关的测试程序
  4. boost::multi_array模块确保 multi_arrays 与 STL 容器一起使用
  5. boost::mpl模块实现map相关的测试程序
  6. boost::math模块使用 non_finite_num facet 的一个非常简单的例子
  7. boost::intrusive::sg_set用法的测试程序
  8. boost::log::sinks::unlocked_sink用法的测试程序
  9. boost::histogram::indexed用法的测试程序
  10. boost::maximum_weighted_matching用法的测试程序