Mysql的复制模式介绍:
*异步复制
主服务器执行完一次事务后,立即将结果返回给客户端,不关心从服务器是否已经同步数据。
*半同步复制
介于异步复制与同步复制之间
主服务器在执行完一次事务后,等待至少一台从服务器同步数据完成,才将结果返回给客户端
Mysql默认异步复制:
开启半同步复制:
1:查看是否允许动态加载模块(默认允许)
show variables like 'have_dynamic_loading';
2:命令行加载插件:
install plugin rpl_semi_sync_master SONAME "semisync_master.so"; //主服务器上执行
install plugin rpl_semi_sync_slave SONAME "semisync_slave.so"; //从服务器上执行
select plugin_name,plugin_status from information_schema.plugins where plugin_name like "%semi%"; //查看
模式配置:
启用半同步复制
半同步复制,默认是关闭的
set global rpl_semi_sync_master_enabled=1; show variables like "rpl_semi_sync_%_enabled";
此上的方式,只是临时的。
永久启用半同步复制
修改主配置文件/etc/my.cnf
在[mysqld]下方添加
主服务器 plugin-load=rpl_semi_sync_master=semisync+master.so rpl_semi_sync_master_enabled=1 从服务器 plugin-load=rpl_semi_sync_slave=semisync_slave.so rpl_semi_sync_slave_enabled=1
如果该主机属于Master又属于Slave时
需同时启用
plugin-load=rpl_semi_sync_master=semisync+master.so;plugin-load=rpl_semi_sync_master=semisync+slave.so
rpl_semi_sync_master_enabled=1 rpl_semi_sync_slave_enabled=1