前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL组复制(MGR)全解析 Part 10 MGR新增节点

MySQL组复制(MGR)全解析 Part 10 MGR新增节点

作者头像
bsbforever
发布2020-08-18 16:21:36
1.7K0
发布2020-08-18 16:21:36
举报

1. MySQL参数设置

新的节点需要提前准备如下参数,可参考已有节点的设置

确保uuid和server id和其他节点不一致

新节点

代码语言:javascript
复制
# BINARY LOGGING #
log-bin                        = /data/db5722/mysql-bin
relay-log                      = /data/db5722/relay-bin
expire-logs-days               = 7
sync-binlog                    = 1
server-id                      = 13657
log_slave_updates              = ON
# GTID #
gtid_mode                      = ON
enforce_gtid_consistency       = ON
binlog_format                  = ROW
binlog_checksum                = NONE
master_info_repository         = TABLE
relay_log_info_repository      = TABLE
slave_parallel_type            = LOGICAL_CLOCK
slave_parallel_workers         = 4
slave_preserve_commit_order    = ON
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"

2.新增节点配置用户

这里账号密码和集群保持一致

新节点

代码语言:javascript
复制
SET SQL_LOG_BIN=0;
CREATE USER replicate@'%';
GRANT REPLICATION SLAVE ON *.* TO rpl@'%'  IDENTIFIED BY 'rpl';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;

3. 安装MGR插件

新节点

代码语言:javascript
复制
安装
mysql>INSTALL PLUGIN group_replication SONAME 'group_replication.so';

确认
mysql> SHOW PLUGINS;
| group_replication| ACTIVE| GROUP REPLICATION | group_replication.so | PROPRIETARY |

4. 配置MGR参数

新节点

停止MYSQL服务后修改

记得添加到配置文件

group_replication_group_name 和其他节点一致

group_replication_start_on_boot暂时设置为OFF

group_replication_local_addres填写本机的IP group_replication_group_seeds 填写所有节点的IP

代码语言:javascript
复制
# MGR  
#transaction_write_set_extraction    = XXHASH64
group_replication_group_name     = "69082df2-3dda-4703-8da1-7c8ecda9664f"
group_replication_start_on_boot    = off
group_replication_local_address    = "192.168.201.136:2101"
group_replication_group_seeds    = "192.168.201.135:2101,192.168.201.136:2101,192.168.201.137:2101"
group_replication_bootstrap_group                  = OFF
group_replication_single_primary_mode              = TRUE
group_replication_enforce_update_everywhere_checks = FALSE

修改完成后重启服务。

其中group_replication_group_seeds 需要在所有节点增加新加入的节点的IP

其他节点

代码语言:javascript
复制
set global group_replication_group_seeds="192.168.201.135:2101,192.168.201.136:2101,192.168.201.137:2101"

4. 加入MGR集群

4.1 导出数据

在数据最新的节点上执行mysqldump全量导出

其中一个节点

代码语言:javascript
复制
mysqldump -uroot -p123456 -q --single-transaction --master-data=2 -B DB_Name > /root/DB_Name.sql

4.2 导入数据

新节点

之后在新增节点执行数据导入

代码语言:javascript
复制
reset master;

source DB_Name.sql

如果使用xtrabackup备份的,需要

代码语言:javascript
复制
reset master

set  @@GLOBAL.GTID_PURGED='e99ae99a-811d-11e9-9ca2-0050568cef02:1-59387'

4.3 加入集群

之后加入MGR集群

新节点

代码语言:javascript
复制
mysql> CHANGE MASTER TO MASTER_USER='rpl',MASTER_PASSWORD='rpl'  FOR CHANNEL 'group_replication_recovery';

mysql> START GROUP_REPLICATION; 

最后将新加入的节点MGR自启动配置为on,参数文件修改

代码语言:javascript
复制
group_replication_start_on_boot=on

5.检查节点

最后我们检查是否加入成功

所有节点

查询下列视图

代码语言:javascript
复制
SELECT * FROM performance_schema.replication_group_members;

查询是否为写入节点

代码语言:javascript
复制
SELECT * FROM sys.gr_member_routing_candidate_status;
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 宅必备 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. MySQL参数设置
  • 2.新增节点配置用户
  • 3. 安装MGR插件
  • 4. 配置MGR参数
  • 4. 加入MGR集群
    • 4.1 导出数据
      • 4.2 导入数据
        • 4.3 加入集群
        • 5.检查节点
        相关产品与服务
        云数据库 SQL Server
        腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档