如何优雅地添加MGR节点?
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集群中,如果发现需要的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节点?相关推荐
- 【DB宝35】使用MySQL 8.0 克隆(clone)插件快速添加MGR节点
文章目录 一.MySQL 8.0.17的克隆clone简介 二.MGR现有环境 三.使用clone技术添加MGR节点 3.1 初始化新节点 3.2 新节点安装clone插件和组复制插件 3.3 新节点 ...
- Anolis OS8.6QU1通过cephadm部署ceph17.2.0分布式块存储(三)添加其它主机和添加mgr节点
本文尝试在龙蜥Anolis OS8.6QU1上通过cephadm部署ceph17.2.0分布式块存储,实现国产化操作系统上的存储系统构建,本步骤为完成首节点mon节点和图形界面,完成其它节点的基础安装 ...
- mgr未同步 mysql_MySQL MGR 节点管理及故障切换
MySQL MGR 节点管理及故障切换 MySQL Group Replication(MGR)框架让MySQL具备了自动主从切换和故障恢复能力. 本文介绍节点管理及故障切换: 1)MGR节点管理及故 ...
- jQuery添加DOM节点常用的5种方法
一.内部插入(前插入.后插入): <!DOCTYPE html> <html><head><meta charset="UTF-8"> ...
- maven不引入parent_Idea开发环境中,开发springboot类型的项目,如果只引入parent节点,不添加依赖节点,maven是不会加载springboot的任何依赖的...
在SpringBoot类型的项目中,我本来是要使用pringBoot,创建一个Console项目,我原本在pom.xml中添加paren节点了,天真的认为不需要再添加其他任何依赖了,可是接下来的1个小 ...
- k8s 去除master节点污点NoSchedule,添加master节点 尽量不调度
k8s 去除master节点(k8s-master)污点NoSchedule,添加master节点 尽量不调度 PreferNoSchedule标签 #添加 尽量不调度 PreferNoSchedul ...
- Oracle RAC 添加删除节点
百度搜索,会很多文章关于如何添加删除节点的,而且这个操作也没有什么很多的技术含量,但是自己测试过,记录一下,以备后续查询,同时也希望能给需要的朋友一些帮助. 环境介绍 环境为两个节点RAC:racno ...
- Hadoop-HBASE 热添加新节点
Hadoop-HBASE 热添加新节点 环境: 192.168.137.101 hd1 192.168.137.102 hd2 192.168.137.103 hd3 192.168.137.104 ...
- Jenkins 添加 linux节点
Jenkins 添加 linux节点 必须预先在linux 节点安装jdk 和 git 必须为Jenkins安装1个ssh build agents plugin的插件 然后如下配置新增节点, 记得配 ...
最新文章
- 二进制数据格式MessagePack:比JSON更快更轻巧
- Win32程序简单演示-模拟电子表格移动光标到另一单元格
- solr调用lucene底层实现倒排索引源码解析
- list可以存放python中任意类型的数据_Python中常见的数据类型小结
- Linux LCD 驱动实验
- 【课题报告】OpenCV 抠图项目实战(10)PyQt5 使用
- 理解OpenShift(6):集中式日志处理
- 线性代数第八章 λ 矩阵 定理8 多项式最大公约数的性质
- Nature Neuroscience(一)
- python怎么写阶乘_python阶乘怎么写
- 计算机网络hdlc,2019计算机考研|计算机网络知识点:HDLC协议
- 生鲜配送系统源码功能介绍
- 一位年薪 180 万的蚂蚁金服大佬扔给我的笔记,建议看完
- 多重积分matlab
- 云计算基础概念——Iaas、PaaS、SaaS
- 应试教育的死穴,恰在于堵死了孩子“犯错”的空间?
- 天翼云解析工具-获取文件直链PHP源码
- 全志 H6 Orange Pi Lite 2 Android 7.0 LED配置
- 机器人softmove_发现 | 人形机器人:一步之遥
- 明日之后mumu模拟器找不到服务器,MuMu模拟器教你玩转《明日之后》,生死之战笑到最后!...
热门文章
- ipsec加密技术谁提出的_如何提出技术问题以获得高质量的答案
- CSS 显示风格 appearance属性
- es6 Generator函数概述
- windows7计算机管理,windows7计算机管理
- win8计算机如何取消系统更新,Win7/Win8电脑如何去掉Win10升级提示
- java快速压缩文件夹_如何使用java压缩文件夹本身
- 2,数据类型,约束条件
- Java-Runoob-高级教程-实例-方法:11. Java 实例 – enum 和 switch 语句使用
- 关于单元测试的思考--Asp.Net Core单元测试最佳实践
- Edge Deletion CodeForces - 1076D(水最短路)