确定是否可以动态安装插件
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,要正确使用对应的角色参数。