mysql-3、mysql集群之半同步复制

目录

    • 一、主库
      • 1、准备工作
      • 2、安装插件
      • 3、查询相关参数
    • 二、从库
      • 1、准备工作
      • 2、安装插件
      • 3、查询相关参数
      • 4、重启slave
    • 三、测试
    • 四、说明
      • 1、MySQL主从复制结构下,如何判定是异步复制还是半同步复制?
        • 方式一:查看主库的mysqld.log日志
        • 方式二:命令查看相关服务配置

需要安装semi模块

一、主库

安装插件,设置参数

1、准备工作

-- 查看是否支持动态加载
select @@have_dynamic_loading;

-- 查看已安装的插件,若缺少相关插件,则需要安装
show plugins;

2、安装插件

## soname 'semisync_master.so'是设置名称为semisync_master.so
install plugin rpl_semi_sync_master soname 'semisync_master.so';

3、查询相关参数

可以对参数进行修改

show variables like '%semi%';

mysql-3、mysql集群之半同步复制_第1张图片

  • rpl_semi_sync_master_enabled :功能是否开启
  • rpl_semi_sync_master_timeout :超时时间(毫秒)
set global rpl_semi_sync_master_enabled=1;
set global rpl_semi_sync_master_timeout=1000;

mysql-3、mysql集群之半同步复制_第2张图片

二、从库

1、准备工作

-- 查看是否支持动态加载
select @@have_dynamic_loading;

-- 查看已安装的插件,若缺少相关插件,则需要安装
show plugins;

2、安装插件

## soname 'semisync_master.so'是设置名称为semisync_master.so
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';

3、查询相关参数

可以对参数进行修改

show variables like '%semi%';

mysql-3、mysql集群之半同步复制_第3张图片

set global rpl_semi_sync_slave_enabled=1;

mysql-3、mysql集群之半同步复制_第4张图片

4、重启slave

stop slave;
start slave;

三、测试

此时,在主库插入一条记录,在从库也是可以查询到的
mysql-3、mysql集群之半同步复制_第5张图片
但是看不出来本次的半同步复制配置是否生效。想知道是否生效,可以通过查看日志的方式。
mysql-3、mysql集群之半同步复制_第6张图片

四、说明

1、MySQL主从复制结构下,如何判定是异步复制还是半同步复制?

方式一:查看主库的mysqld.log日志

详见第三部的截图

/var/log/mysqld.log

方式二:命令查看相关服务配置

参考资料:知乎

show global status like '%Rpl_semi%';

可以在主库和从库分别执行上述命令查看返回结果
mysql-3、mysql集群之半同步复制_第7张图片
mysql-3、mysql集群之半同步复制_第8张图片

你可能感兴趣的:(linux,mysql,mysql,linux)