mysql如何配置半同步复制_mysql半同步复制配置方法

来源:这里教程网 时间:2026-02-28 20:27:25 作者:

MySQL半同步复制(Semi-Synchronous Replication)是一种介于异步复制和全同步复制之间的机制,它保证主库在提交事务前至少有一个从库已接收到并写入中继日志,从而提高数据安全性。下面介绍如何配置MySQL半同步复制。

1. 确认环境要求

要使用半同步复制,需满足以下条件:

MySQL版本 >= 5.5(推荐使用5.7或8.0) 主从复制已经配置为异步模式并正常运行 主从节点之间网络稳定 安装了semisync插件支持(通常默认编译包含)

2. 安装半同步插件

在主库和从库上分别启用半同步复制插件。

主库操作:

加载主库半同步插件并开启功能:

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled = 1;
SET GLOBAL rpl_semi_sync_master_timeout = 10000; -- 超时时间(毫秒),默认10秒

从库操作:

加载从库插件:

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_slave_enabled = 1;

注意:从库启用后需要重启I/O线程才能生效:

STOP SLAVE IO_THREAD;
START SLAVE IO_THREAD;

3. 验证半同步状态

检查主从是否成功建立半同步连接。

查看主库状态:

SHOW STATUS LIKE 'Rpl_semi_sync_master_status';
SHOW STATUS LIKE 'Rpl_semi_sync_master_clients';

Rpl_semi_sync_master_status 为 ON 表示半同步已启用;Rpl_semi_sync_master_clients 显示当前连接的半同步从库数量。

查看从库状态:

SHOW STATUS LIKE 'Rpl_semi_sync_slave_status';

若返回 ON,则表示从库已以半同步方式运行。

4. 配置文件持久化设置

上述 SET GLOBAL 设置在重启后会失效,建议写入 my.cnf 配置文件中。

主库 my.cnf 添加:

[mysqld]
rpl_semi_sync_master_enabled = 1
rpl_semi_sync_master_timeout = 10000

从库 my.cnf 添加:

[mysqld]
rpl_semi_sync_slave_enabled = 1

修改后重启 MySQL 服务使配置永久生效。

基本上就这些。只要主从复制已通,插件安装正确,再按步骤开启参数,就能顺利启用半同步复制。注意监控超时情况,避免因网络问题导致主库退化为异步模式。

相关推荐

热文推荐