定制化网站建设公司,描述photoshop在网站建设中的作用与特点.,wordpress调取文章列表,电商网页设计网站1 组复制模式切换注意点 
组复制有两种运行模式#xff0c;一种是单主模式#xff0c;一种是多主模式。这个模式是在整个组中设置的#xff0c;由 group_replication_single_primary_mode 这个系统变量指定#xff0c;而且在所有成员上必须保持一致。ON 表示单主模式#…1 组复制模式切换注意点 
组复制有两种运行模式一种是单主模式一种是多主模式。这个模式是在整个组中设置的由 group_replication_single_primary_mode 这个系统变量指定而且在所有成员上必须保持一致。ON 表示单主模式这也是默认的模式OFF 表示多主模式。需要注意的是不能在同一个组的成员中同时使用不同的模式比如一个成员配置在多主模式而另一个成员在单一主模式下。 
当组复制正在运行时不能手动更改 group_replication_single_primary_mode 的值。 
在MySQL 8.0.13之前的版本中如果要更改组的模式必须停止组复制并在所有成员上更改 group_replication_single_primary_mode 的值。然后进行一次完整的组重启由 group_replication_bootstrap_groupON 的服务器引导以实施对新操作配置的更改。注意不需要重新启动mysqld服务只需要将组复制重新引导即可。 
从MySQL 8.0.13开始支持在线对组复制模式进行变更。使用 group_replication_switch_to_single_primary_mode() 和 group_replication_switch_to_multi_primary_mode() 这两个函数在组复制仍在运行时将组从一种模式切换到另一种模式。这两个函数会管理切换组模式的过程并确保数据的安全性和一致性。 
更详细内容请参考官方手册group-replication-changing-group-mode.html 
2 MySQL8.0.13版本前切换方法 
在MySQL8.0.13版本之前的版本不支持在线切换组复制的模式切换模式需要重启整个组复制。 
一、单主模式切换为多主模式 
1.查看集群状态和模式 
mysql select * from performance_schema.replication_group_members;
mysql show status like group_replication_primary_member;判断单主模式的方法是系统状态变量group_replication_primary_member不为空会显示主节点的成员号。 
2.在所有节点上停止组复制 
mysql stop group_replication;3.修改主库的配置并重启 
mysql 
set global group_replication_single_primary_modeoff;
set global group_replication_enforce_update_everywhere_checkson;
set global group_replication_bootstrap_groupon;
start group_replication;
set global group_replication_bootstrap_groupOFF;参数说明 
group_replication_single_primary_mode单主模式group_replication_enforce_update_everywhere_checks冲突检测严格的一致性检查group_replication_bootstrap_group组复制初始化。 
4.修改从库的配置并重启 
mysql 
set global group_replication_single_primary_modeoff;
set global group_replication_enforce_update_everywhere_checkson;
start group_replication;二、多主模式切换为单主模式 
1.在所有节点上停止组复制 
mysql stop group_replication;2.修改主库的配置并重启 
mysql 
set global group_replication_enforce_update_everywhere_checksoff;
set global group_replication_single_primary_modeon;
set global group_replication_bootstrap_groupon;
start group_replication;
set global group_replication_bootstrap_groupOFF;4.修改从库的配置并重启 
mysql 
set global group_replication_enforce_update_everywhere_checksoff;
set global group_replication_single_primary_modeon;
start group_replication;三、问题探究 
我们知道单主模式和多主模式的一个很本质的区别是单主模式只有主库支持读写从库只读。 
将集群从单主模式切换为多主模式就要求单主模式的从库要从只读设置为可读可写。设置只读的参数为read_only和super_read_only。 
不知道各位是否有疑问当组复制模式转换时是否需要手动设置上面这两个参数 
比如当单主模式切换为多主模式时read_only和super_read_onlyMySQL是否会自动设置为OFF 
实验过程如下 实验结论不需要手动设置只读参数。 
3 MySQL8.0.13及以后版本切换方法 
在MySQL8.0.13版本开始支持在线切换组复制模式不需要重启只需要执行两个内置的函数即可快速完成切换。 
一、单主模式切换为多主模式 
使用group_replication_switch_to_single_primary_mode()函数将单主模式切换为多主模式。 
在任意节点执行如下命令: 
mysql select group_replication_switch_to_multi_primary_mode();
--------------------------------------------------
| group_replication_switch_to_multi_primary_mode() |
--------------------------------------------------
| Mode switched to multi-primary successfully.     |
--------------------------------------------------
1 row in set (1.01 sec)查看成员状态 
mysql select * from performance_schema.replication_group_members;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
| group_replication_applier | 13fc049e-c133-11ee-a377-000c29df1f85 | 192.168.131.20 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
| group_replication_applier | 248563ac-c133-11ee-a387-000c29551477 | 192.168.131.30 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
| group_replication_applier | f40395ea-c132-11ee-9249-000c29c00092 | 192.168.131.10 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 rows in set (0.00 sec)切换后MEMBER_ROLE的值都为PRIMARY。 
二、多主模式切换为单主模式 
查看集群模式和成员号 
mysql select * from performance_schema.replication_group_members;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
| group_replication_applier | 13fc049e-c133-11ee-a377-000c29df1f85 | 192.168.131.20 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
| group_replication_applier | 248563ac-c133-11ee-a387-000c29551477 | 192.168.131.30 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
| group_replication_applier | f40395ea-c132-11ee-9249-000c29c00092 | 192.168.131.10 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 rows in set (0.00 sec)指定成员号切换模式 
mysql SELECT group_replication_switch_to_single_primary_mode(f40395ea-c132-11ee-9249-000c29c00092);
-----------------------------------------------------------------------------------------
| group_replication_switch_to_single_primary_mode(f40395ea-c132-11ee-9249-000c29c00092) |
-----------------------------------------------------------------------------------------
| Mode switched to single-primary successfully.                                           |
-----------------------------------------------------------------------------------------
1 row in set (0.03 sec)mysql select * from performance_schema.replication_group_members;
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
| group_replication_applier | 13fc049e-c133-11ee-a377-000c29df1f85 | 192.168.131.20 |        3306 | ONLINE       | SECONDARY   | 8.0.27         | XCom                       |
| group_replication_applier | 248563ac-c133-11ee-a387-000c29551477 | 192.168.131.30 |        3306 | ONLINE       | SECONDARY   | 8.0.27         | XCom                       |
| group_replication_applier | f40395ea-c132-11ee-9249-000c29c00092 | 192.168.131.10 |        3306 | ONLINE       | PRIMARY     | 8.0.27         | XCom                       |
---------------------------------------------------------------------------------------------------------------------------------------------------------------------
3 rows in set (0.00 sec)4 总结 
MySQL组复制模式切换操作总体上并不复杂在操作时只需要特别注意环境版本MySQL8.0.13版本之前模式切换需要重启整个组复制从MySQL8.0.13版本开始可以在线切换。 
模式切换实际上是修改两个系统参数group_replication_enforce_update_everywhere_checks和group_replication_single_primary_mode。我们对比手动修改参数和在线切换两种方式不难发现其实在线切换执行的MySQL函数自动帮我们将这两个系统参数进行同步修改并且固化到mysqld-auto.cnf配置文件中。 
【关联文章】 
1MySQL组复制的介绍 2MySQL单主模式部署组复制 3单主模式和多主模式切换 4MySQL组复制的管理