MySQL Group Replication(简称MGR)是MySQL官方于2016年12月份推出的一个全新的高可用与高扩展的解决方案。MGR提供了高可用、高扩展、高可靠的MySQL集群服务,是MySQL数据库未来发展的一个重要方向。

场景描述
操作系统 MySQL版本
CentOS Linux release 7.3.1611 MySQL5.7.20 二进制
  • ip地址规划

IP地址 hosts port
192.168.74.134 mgr-node1.up.com 3306\23306
192.168.74.135 mgr-node2.up.com 3306\23306
192.168.74.136 mgr-node3.up.com 3306\23306

一个已经运行很久的MGR集群,以single-master模式运行(单主模式),binlog过期策略为7天。

  • 参数设置

Key Value
enforce_gtid_consistency ON
master_info_repository TABLE
relay_log_info_repository TABLE
binlog_checksum NONE
log_slave_updates ON
binlog_format ROW
==expire_logs_days== 7
  • 需求描述

因为不可抗力的因素,mgr-node3.up.com 节点永久性的down,并且无法恢复,或者mgr-node3.up.com 宕机超过时间7days, 或需要快速添加节点,那么该如何快速添加或扩容呢?

猜想
  • 如果这个问题发生在Percona XtraDB Cluster(pxc)或者Mariadb Galera Cluster,那解决方案就是通过SST(全量)或者IST(增量)来实现,那么MGR是否有相关的解决方案呢?

  • 假设MGR也是通过SST或者IST来的解决方案,加入MGR是否可以使用MySQLdump 或者rsync来获得一份全量?

  • 假设是通过MySQLdump来实现传递增量。是否可以用xtrabackup来替换呢?

下面根据上述的猜想和假设来求证,如何优雅地添加MGR节点。

验证

猜想:在MySQL官方文档中没有找到关于SST或IST的描述,既然官方文档没有写,那么在实验环境中能否模拟出来呢?

  • 实验:在mgr-node1.up.com主节点创建一张表

加入新的节点mgr-node4.up.com并初始化,开启现有环境所有节点的general_log,并观察general的输出mgr-node1.up.com 节点。

从general_log中找到了蛛丝马迹,目前版本的MGR,不支持SST或IST,实现的方式是根据GTID的方式来实现的。

同时在general_log中也发现,目前版本的MGR也不支持MySQLdump或者rsync方式来给新加入的节点传递全量。如果binlog被清空的话 则显示为空,新的节点无法加入集群,但

"root@localhost:mysql3306.sock [aa]>start group_replication; 会提示成功。

正确姿势

1.首先,需要手动在MGR集群中获得一致性备份。

2.初始化新节点,并应用备份。 注意如下操作,否则无法正常启动集群。

3.安装官方文档正常初始化集群

4.验证

总结

1.如果需要添加一个节点

添加节点 需要自己手动在MGR集群中备份,MGR集群不存在SST和IST概念,而是完全通过GTID和binlog来实现“追数据”的一个操作。

2.节点宕机

如果MGR集群中某个节点宕机,宕机节点会询问存活集群,是否能补全binlog?如果能补齐,那么就会正常传输,进行追数据 ;如果宕机节点需要的日志不存在了,则该节点无法正常加入到集群环境中。

对于MGR一个建议

在宕机节点加入MGR集群中,如果发现需要的binlog日志不存在,则无法启动集群start group_replication。

相关阅读:

MySQL MGR与Galera性能测试买家秀

通过Docker技术在macOS上部署3实例MGR环境

深入剖析 Group Replication内核的引擎特性

从主从复制到Group Replication

MySQL Group Replication 学习笔记

资源下载

关注公众号:数据和云(OraNews)回复关键字获取

‘2017DTC’,2017DTC大会PPT

‘DBALIFE’,“DBA的一天”海报

‘DBA04’,DBA手记4经典篇章电子书

‘INTERNALS’,Oracle RAC PPT

‘122ARCH’,Oracle 12.2体系结构图

‘2017OOW’,Oracle OpenWorld资料

‘PRELECTION’,大讲堂讲师课程资料

如何优雅地添加MGR节点?相关推荐

  1. 【DB宝35】使用MySQL 8.0 克隆(clone)插件快速添加MGR节点

    文章目录 一.MySQL 8.0.17的克隆clone简介 二.MGR现有环境 三.使用clone技术添加MGR节点 3.1 初始化新节点 3.2 新节点安装clone插件和组复制插件 3.3 新节点 ...

  2. Anolis OS8.6QU1通过cephadm部署ceph17.2.0分布式块存储(三)添加其它主机和添加mgr节点

    本文尝试在龙蜥Anolis OS8.6QU1上通过cephadm部署ceph17.2.0分布式块存储,实现国产化操作系统上的存储系统构建,本步骤为完成首节点mon节点和图形界面,完成其它节点的基础安装 ...

  3. mgr未同步 mysql_MySQL MGR 节点管理及故障切换

    MySQL MGR 节点管理及故障切换 MySQL Group Replication(MGR)框架让MySQL具备了自动主从切换和故障恢复能力. 本文介绍节点管理及故障切换: 1)MGR节点管理及故 ...

  4. jQuery添加DOM节点常用的5种方法

    一.内部插入(前插入.后插入): <!DOCTYPE html> <html><head><meta charset="UTF-8"> ...

  5. maven不引入parent_Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的...

    在SpringBoot类型的项目中,我本来是要使用pringBoot,创建一个Console项目,我原本在pom.xml中添加paren节点了,天真的认为不需要再添加其他任何依赖了,可是接下来的1个小 ...

  6. k8s 去除master节点污点NoSchedule,添加master节点 尽量不调度

    k8s 去除master节点(k8s-master)污点NoSchedule,添加master节点 尽量不调度 PreferNoSchedule标签 #添加 尽量不调度 PreferNoSchedul ...

  7. Oracle RAC 添加删除节点

    百度搜索,会很多文章关于如何添加删除节点的,而且这个操作也没有什么很多的技术含量,但是自己测试过,记录一下,以备后续查询,同时也希望能给需要的朋友一些帮助. 环境介绍 环境为两个节点RAC:racno ...

  8. Hadoop-HBASE 热添加新节点

    Hadoop-HBASE 热添加新节点 环境: 192.168.137.101 hd1 192.168.137.102 hd2 192.168.137.103 hd3 192.168.137.104 ...

  9. Jenkins 添加 linux节点

    Jenkins 添加 linux节点 必须预先在linux 节点安装jdk 和 git 必须为Jenkins安装1个ssh build agents plugin的插件 然后如下配置新增节点, 记得配 ...

最新文章

  1. 二进制数据格式MessagePack:比JSON更快更轻巧
  2. Win32程序简单演示-模拟电子表格移动光标到另一单元格
  3. solr调用lucene底层实现倒排索引源码解析
  4. list可以存放python中任意类型的数据_Python中常见的数据类型小结
  5. Linux LCD 驱动实验
  6. 【课题报告】OpenCV 抠图项目实战(10)PyQt5 使用
  7. 理解OpenShift(6):集中式日志处理
  8. 线性代数第八章 λ 矩阵 定理8 多项式最大公约数的性质
  9. Nature Neuroscience(一)
  10. python怎么写阶乘_python阶乘怎么写
  11. 计算机网络hdlc,2019计算机考研|计算机网络知识点:HDLC协议
  12. 生鲜配送系统源码功能介绍
  13. 一位年薪 180 万的蚂蚁金服大佬扔给我的笔记,建议看完
  14. 多重积分matlab
  15. 云计算基础概念——Iaas、PaaS、SaaS
  16. 应试教育的死穴,恰在于堵死了孩子“犯错”的空间?
  17. 天翼云解析工具-获取文件直链PHP源码
  18. 全志 H6 Orange Pi Lite 2 Android 7.0 LED配置
  19. 机器人softmove_发现 | 人形机器人:一步之遥
  20. 明日之后mumu模拟器找不到服务器,MuMu模拟器教你玩转《明日之后》,生死之战笑到最后!...

热门文章

  1. ipsec加密技术谁提出的_如何提出技术问题以获得高质量的答案
  2. CSS 显示风格 appearance属性
  3. es6 Generator函数概述
  4. windows7计算机管理,windows7计算机管理
  5. win8计算机如何取消系统更新,Win7/Win8电脑如何去掉Win10升级提示
  6. java快速压缩文件夹_如何使用java压缩文件夹本身
  7. 2,数据类型,约束条件
  8. Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用
  9. 关于单元测试的思考--Asp.Net Core单元测试最佳实践
  10. Edge Deletion CodeForces - 1076D(水最短路)