配置MySQL半同步复制需先安装并启用主从库的semisync插件,修改my.cnf参数并重启I/O线程,通过SHOW STATUS验证状态,确保主库等待至少一个从库确认接收binlog,提升数据一致性。

MySQL 中配置半同步复制可以提升主从数据一致性,避免因主库宕机导致的数据丢失。以下是具体配置步骤和说明。
安装半同步复制插件
MySQL 的半同步复制依赖于特定插件,主库和从库都需要加载对应插件。
- 主库上加载 semisync_master 插件:
- 从库上加载 semisync_slave 插件:
插件文件通常位于 MySQL 的 plugin 目录下,若提示找不到文件,请确认是否已安装插件包(如 libmysqlclient-dev 或对应版本的扩展)。
启用半同步复制
插件安装后需在配置文件中启用,并设置相关参数。
- 主库 my.cnf 配置:
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 10000 # 超时时间,单位毫秒(默认10秒)
- 从库 my.cnf 配置:
rpl_semi_sync_slave_enabled = 1
修改配置后重启主从数据库服务或动态生效:
SET GLOBAL rpl_semi_sync_master_enabled = 1;SET GLOBAL rpl_semi_sync_slave_enabled = 1;
注意:从库启用后需重启 I/O 线程才能生效:
第一步】:将安装包中所有的文件夹和文件用ftp工具以二进制方式上传至服务器空间;(如果您不知如何设置ftp工具的二进制方式,可以查看:(http://www.shopex.cn/support/qa/setup.help.717.html)【第二步】:在浏览器中输入 http://您的商店域名/install 进行安装界面进行安装即可。【第二步】:登录后台,工具箱里恢复数据管理后台是url/sho
START SLAVE IO_THREAD;
验证半同步状态
检查主从是否成功运行在半同步模式。
- 查看主库状态:
返回 ON 表示主库已处于半同步模式。
- 查看从库连接状态:
返回 ON 表示从库已启用半同步接收。
- 主库还可查看当前有多少从库响应了半同步:
注意事项与调优建议
半同步复制虽然提高了数据安全性,但也可能影响性能,需合理配置。
- 超时机制:rpl_semi_sync_master_timeout 设置主库等待从库响应的最大时间。超时后自动退化为异步复制,确保主库不被阻塞。
- 至少一个从库响应:默认只要有一个从库确认收到日志,主库就可提交。可通过 rpl_semi_sync_master_wait_for_slave_count 调整需要确认的从库数量。
- 网络稳定性:半同步对网络延迟敏感,高延迟或不稳定网络可能导致频繁退化为异步。
- 监控状态:定期检查 Rpl_semi_sync_master_status 和相关延迟指标,及时发现异常。
基本上就这些。配置完成后,主库事务提交将等待至少一个从库确认接收 binlog event,从而实现更安全的数据复制。不复杂但容易忽略细节。









