确定是否可以动态安装插件

show variables like '%have_dynamic_loading%';
ls /usr/local/mysql-5.6.38-linux-glibc2.12-x86_64/lib/plugin/semisync_*
/usr/local/mysql-5.6.38-linux-glibc2.12-x86_64/lib/plugin/semisync_master.so
/usr/local/mysql-5.6.38-linux-glibc2.12-x86_64/lib/plugin/semisync_slave.so

安装软件:

install plugin rpl_semi_sync_master SONAME 'semisync_master.so';
set global rpl_semi_sync_master_timeout=60000;

install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';
select * from mysql.plugin;

开启功能
主库

set global rpl_semi_sync_master_enabled=on;

从库

set global rpl_semi_sync_slave_enabled=on;
stop slave io_thread;start slave;

主库:

show status like '%semi%';

从库io_thread正常情况下,复制延迟对于半同步没影响。

配置文件增加选项:

rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=60000

rpl_semi_sync_slave_enabled=1

注意:
1.去掉半同步复制,半同步复制会造成一些语句不适用,影响主从进程。
2.主库不要打开rpl_semi_sync_slave_enabled,从库不要打开rpl_semi_sync_master_enabled,要正确使用对应的角色参数。