MySQL 8.0.32 MGR常见操作及添加新节点
启动MGR
-
单主模式启动
第一个节点(引导):
SET GLOBAL group_replication_bootstrap_group=ON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_group=OFF;
其他节点:
START GROUP_REPLICATION;
-
多主模式启动
所有节点设置多主模式
set global group_replication_single_primary_mode=OFF;
set global group_replication_enforce_update_everywhere_checks=ON;
第一个节点(引导):
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;
其他节点:
START GROUP_REPLICATION;
MGR单主多主模式切换
-
多主切换为单主
在任一节点上执行:
select group_replication_switch_to_single_primary_mode('39e6b044-cc8c-11ed-ba9f-000c2930b9bc');
说明:39e6b044-cc8c-11ed-ba9f-000c2930b9bc为需要指定为主节点的MEMBER_ID
-
单主切换为单主
在任一节点上执行:
SELECT group_replication_switch_to_multi_primary_mode();
-
单主模式下切换主节点
SELECT group_replication_set_as_primary('39e6b044-cc8c-11ed-ba9f-000c2930b9bc',300);
说明:39e6b044-cc8c-11ed-ba9f-000c2930b9bc为要主节点的member_id;300为超时时间,单位为秒,8.0.29后开始有此参数,设置了超时时间,那么会阻止主服务上启动新事务,当到达超时时间后,未提交的事务客户端会断开连接,事务不会继续。
组的写入并发性
-
检查组的写入并发性
SELECT group_replication_get_write_concurrency();
-
设置组的写入并发性
SELECT group_replication_set_write_concurrency(instances);
添加新节点
因为MGR的同步是基于binlog和GTID实现的,所以添加新节点时所要解决的核心问题就是原有数据同步以及新节点GTID设置。在添加新节点前,需要评估一下当前MGR的情况,以便于确定最优的添加方案,主要需要考虑以下几点:
1、原有数据如何同步到新节点?
2、原MGR节点中的binlog日志保留了多久?是否完整?
3、新节点的GTID如何设置?
4、原MGR各节点的MySQL版本是多少?以及系统环境是否一样?
根据评估情况,基本上可以确定最优的添加方案,不过不管是哪种方案,大体步骤都差不多,主要的区别在于原有数据同步恢复方式。大体步骤如下:
-
配置新节点
server_id=1 #与原MGR各节点server_id需要不一样