本文共 1418 字,大约阅读时间需要 4 分钟。
半同步复制是一项高效的数据库复制机制,可以在主节点暂停时减少延迟的副作用。本文将具体说明在 CentOS8 上配置 MySQL8.0 的半同步复制步骤。
设置主节点(10.0.0.8)和从节点(10.0.0.18 和 10.0.0.28)
创建并授权复制用户
CREATE USER 'repluser'@'10.0.0.%' IDENTIFIED BY '123456';GRANT REPLICATION SLAVE ON . TO 'repluser'@'10.0.0.%';
这个用户应拥有x509证书,以确保通信的安全性。
安装插件
semisync_master.so
插件:INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
semisync_slave.so
插件:INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
配置文件修改
[mysqld]server-id=8log-binrpl_semi_sync_master_enabled=1rpl_semi_sync_master_timeout=3000
[mysqld]server-id= <从节点id,例如18或28> log-binrpl_semi_sync_slave_enabled=1 从节点id,例如18或28>
请确保 log-bin
选项启用,以支持半同步日志记录。
启动数据库服务并重启
systemctl restart mysqld
注意:如果使用 mysqld
而不是 mysql_upgrade
,可能需要重新启动数据库。
从节点设置主节点信息
CHANGE MASTER TOMASTER_HOST='10.0.0.8'MASTER_USER='repluser'MASTER_PASSWORD='123456'MASTER_PORT=3306MASTER_LOG_FILE='Centos8-bin.*MASTER_LOG_POS=156;
启动复制并验证状态
START SLAVE;SHOW SLAVE STATUS\G
查看输出,确保从节点连接到主节点。部分状态变量如 Rpl_semi_sync_master_enabled
应为 1,表示半同步已开启。
另外,检查全局状态变量:
SHOW GLOBAL VARIABLES LIKE '%semi%';
预期会显示 rpl_semi_sync_master_enabled
和 rpl_semi_sync_slave_enabled
为 1。
在主节点创建ATEST
CREATE DATABASE db1;
验证从节点访问
如果从节点已连接,可以查询主节点的数据库:
SHOW CREATE DATABASE db1;
分析延迟表现
停止一个从节点:
STOP SLAVE;
主节点数据应在3秒内写入,而从节点有连接的情况下不受影响。
以上步骤完整指导了在 CentOS8 上配置 MySQL8.0 的半同步复制。通过设立合适的插件和配置,确保主从节点之间的数据同步高效且可靠。
转载地址:http://beoez.baihongyu.com/