CentOS8 在MySQL8.0 实现半同步复制
#原理
MySQL默认是异步的,不要求必须全部同步到从节点才返回成功结果;
同步复制: 用户发请求到代理, 代理收到请求后写/更新数据库写入到二进制日志bin_log, 然后必须等数据发到所有的从节点, 从节点全部收到数据后, 主节点才返回给客户端的成功结果。
弊端: 客户端必须等到所有的从节点接收全部数据才收到成功结果,耗时长,效率低。
所以用半同步的方法解决,只要有一个从节点同步成功就返回成功结果。
#安装插件
安装主节点插件
mysql>INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so'; #永久安装插件
查看插件
mysql>SHOW PLUGINS; #查看插件
安装从节点插件(两个)
mysql>INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
mysql>SHOW PLUGINS; #查看插件
#主服务器Master配置
[root@master ~]#vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id=8
log-bin
rpl_semi_sync_master_enabled=ON #修改此行,需要先安装semisync_master.so插件后,再重启,否则无法启动
rpl_semi_sync_master_timeout=3000 #设置3s内无法同步,也将返回成功信息给客户端
重启数据库
systemctl restart mysqld
插件开启状态
#从服务器Slave配置
打开配置文件
vim /etc/my.cnf.d/mysql-server.cnf
第一个从节点
[root@slave1 ~]#vim /etc/my.cnf.d/mysql-server.cnf
[mysqld]
server-id=18
rpl_semi_sync_slave_enabled=ON #修改此行,需要先安装semisync_slave.so插件后,再重启,否则无法启动
第二个从节点
[mysqld]
server-id=28
rpl_semi_sync_slave_enabled=ON #修改此行,需要先安装semisync_slave.so插件后,再重启,否则无法启动
验证查看
mysql>SHOW GLOBAL VARIABLES LIKE '%semi%';
#搭建主从关系
主节点查看
mysql> show master logs;
记录下来
CHANGE MASTER TO
MASTER_HOST='10.0.0.8',
MASTER_USER='repluser',
MASTER_PASSWORD='magedu',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=156;
创建账号并授权
#创建用户
mysql>create user repluser@"10.0.0.%" identified by "123456";
#授权
mysql>grant replication slave on *.* to repluser@"10.0.0.%";
从节点数据库执行
CHANGE MASTER TO
MASTER_HOST='10.0.0.8',
MASTER_USER='repluser',
MASTER_PASSWORD='magedu',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000002', MASTER_LOG_POS=156;
状态查看(成功)
mysql> start slave;
#验证
现在返回主节点查看
mysql> SHOW GLOBAL STATUS LIKE '%semi%';
#注意:如果已经实现主从复制,需要stop slave;start slave;
mysql> stop slave;
mysql> start slave;
mysql> SHOW GLOBAL STATUS LIKE '%semi%';
+----------------------------+-------+
| Variable_name | Value |
+----------------------------+-------+
| Rpl_semi_sync_slave_status | ON |
+----------------------------+-------+
1 row in set (0.00 sec)
原文地址:https://blog.csdn.net/cj13106811623/article/details/143815392
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!