mysql|组复制部署

实验环境

主机名/IP角色
server01/192.168.1.201
server02/192.168.1.202
server03/192.168.1.203

ALL NODE

安装数据库

添加映射

vim /etc/hosts
192.168.1.201 server01
192.168.1.202 server02
192.168.1.203 server03

更改数据库配置

vim /etc/mysql/mysql.conf.d/mysqld.conf
[mysqld]
server-id=1  # 每个节点需更改成自己的唯一id
bind-address=0.0.0.0
gtid_mode=ON
enforce_gtid_consistency=ON
log_bin=mysql-bin
log_replica_updates=ON
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY" #关闭除InnoDB之外的其他引擎
plugin_load_add='group_replication.so' #加载组复制插件
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"  # 必须是uuid,可以使用 SELECT UUID() 生成一个
group_replication_start_on_boot=off #指示插件服务器启动时不会自动启动操作,引导成功后可以设置为on
group_replication_local_address= "server01:33061"  # 当前节点内部通信地址
group_replication_group_seeds= "server01:33061,server02:33061,server03:33061" 
group_replication_bootstrap_group=off # 控制当前节点是否以引导模式启动组复制集群
group_replication_recovery_get_public_key=ON  # 当使用分布式节点恢复功能的时候,由于用户使用caching_sha2验证插件,需要启用参数复制账户公钥

重启服务

systemctl restart mysql

为分布式恢复创建复制用户

mysql -u root -p
SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'wakamizu';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
GRANT CONNECTION_ADMIN ON *.* TO rpl_user@'%';
GRANT BACKUP_ADMIN ON *.* TO rpl_user@'%';
GRANT GROUP_REPLICATION_STREAM ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;

配置组复制恢复通道的源信息

CHANGE REPLICATION SOURCE TO SOURCE_USER='rpl_user', SOURCE_PASSWORD='wakamizu' FOR CHANNEL 'group_replication_recovery' ;

server01

引导组

mysql -u root -p
SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION USER='rpl_user', PASSWORD='wakamizu';
SET GLOBAL group_replication_bootstrap_group=OFF;

server02 && server03

加入组

mysql -u root -p
START GROUP_REPLICATION USER='rpl_user', PASSWORD='wakamizu';

ALL NODE

查看群组信息

mysql -u root -p
SELECT * FROM performance_schema.replication_group_members;

在主节点创建表进行测试,查看是否复制完成

小贴士:

切换主节点

mysql -u root -p
SELECT group_replication_set_as_primary(‘组成员uuid');

检查切换进度

SELECT event_name, work_completed, work_estimated FROM performance_schema.events_stages_current WHERE event_name LIKE "%stage/group_rpl%"\G

切换成单主模式

SELECT group_replication_switch_to_single_primary_mode('uuid');

如果没有输入uuid,则由群组自己选举

切换成多主模式

SELECT group_replication_switch_to_multi_primary_mode();

当将组从单主模式更改为多主模式时,如果成员运行的 MySQL 服务器版本高于组中最低版本,则成员将自动处于只读模式

检查操作进度

SELECT event_name, work_completed, work_estimated FROM performance_schema.events_stages_current WHERE event_name LIKE "%stage/group_rpl%";

设置节点事务写并发数

SELECT group_replication_get_write_concurrency();
SELECT group_replication_set_write_concurrency(可并发写事务数量);

设置 MySQL 版本通信协议版本

返回该组使用的最低 MySQL 版本通信协议版本

SELECT group_replication_get_communication_protocol();

一个 MySQL Server 8.0.16 实例可以成功加入使用通信协议版本 5.7.24 的组
一个 MySQL Server 5.7.24 实例无法成功加入使用通信协议版本 8.0.16 的组
两个 MySQL Server 8.0.16 实例不能同时加入使用通信协议版本 5.7.24 的组
两个 MySQL Server 8.0.16 实例可以同时加入使用通信协议版本 8.0.16 的组

设置通信协议版本

SELECT group_replication_set_communication_protocol("MySQL 服务器版本号");

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!