13、MySQL半同步复制示例

官方文档:https://dev.mysql.com/doc/refman/8.0/en/replication-semisync-installation.html

1)安装半同步插件

  • 主节点

    #from MySQL 8.0.26:
    INSTALL PLUGIN rpl_semi_sync_source SONAME 'semisync_source.so';

    #验证是否成功安装
    SELECT PLUGIN_NAME, PLUGIN_STATUS
    FROM INFORMATION_SCHEMA.PLUGINS
    WHERE PLUGIN_NAME LIKE '%semi%';

2)开启半同步功能

  • 主节点

    SET GLOBAL rpl_semi_sync_source_enabled=1;
    #查看是否开启
    show variables like "%semi_sync%";

  • 从节点

    set global rpl_semi_sync_replica_enabled=1;

3) 重启从节点上的I/O线程

如果在运行时启用副本上的半同步复制,您还必须启动复制I/O(接收端)线程(如果已经运行,则先停止它),以使副本连接到源端并注册为半同步副本。

4) 半同步复制测试

测试:当从节点响应超时时,主节点会将同步机制退化为异步复制。 从节点恢复后,同步机制是否会恢复为半同步复制

复制代码
# 修改主节点半同步属性
set global rpl_semi_sync_source_wait_for_replica_count=2;
set global rpl_semi_sync_source_timeout=100000;

#停掉从节点2
docker stop mysql-replica2

#恢复从节点2
docker start mysql-replica2
#从节点2中执行
set global rpl_semi_sync_replica_enabled=1;
STOP REPLICA IO_THREAD;
START REPLICA IO_THREAD;
相关推荐
huangdong_2 分钟前
京东商品图片视频批量下载与m3u8视频合并技术完整实现方案
大数据·前端·数据库
倒流时光三十年11 分钟前
PostgreSQL CASE 条件表达式详解
数据库·postgresql
字节跳动数据平台33 分钟前
营销视频进入工业化时代,火山引擎多模态数据湖如何助力多米实现内容生产提效 100+ 倍
数据库
健康平安的活着1 小时前
mysql中数据库脚本太大,通过脚本命令修改db名称
数据库·mysql
倒流时光三十年1 小时前
PostgreSQL COALESCE 条件表达式函数详解
数据库·postgresql
让我上个超影吧1 小时前
Claude code:Hooks
java·数据库·ai编程
RH2312111 小时前
2026.6.8Linux
java·数据库·中间件
其实防守也摸鱼1 小时前
软件安全与漏洞--Windows底层原理与软件逆向工程基础
linux·网络·数据库·算法·安全·安全架构·软件安全与漏洞
minji...2 小时前
MySQL数据库 (八) MySQL表的基本查询(下),truncate、group by、聚合函数、分组聚合统计
数据库·mysql·聚合函数·update·分组聚合统计
乐世东方客2 小时前
备份脚本记录(binlog文件+mysql+mongo)
android·数据库·mysql