半同步复制是在主从同步复制的基础之上,主从同步前面我的博文有介绍
Semisynchronous Replication(半同步复制)则一定程度上保证提交的事务已经传给了至少一个备库
MySQL在加载并开启Semi-sync插件后,每一个提交的事务需等待至少一个备库确认接收该提交的事务后才返回给客户端。如果做的
是小事务,两台主机的网络延迟又较小,则Semi-sync可以实现在性能很小损失的情况下的零数据丢失(为了减少网络延迟建议此两台
服务器放在同一个机架上)
主服务器上执行以下命令:
MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
SET GLOBAL rpl_semi_sync_master_enabled=1;
SET GLOBAL rpl_semi_sync_master_timeout=5000; (如果5秒钟同步未成功自动降级为默认的异步)
rpl_semi_sync_master_enabled | ON 开启了半同步
Rpl_semi_sync_master_clients | 1 证明主从半同步复制连接成功
从服务器上执行以下命令:
MariaDB [(none)]> INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';
SET GLOBAL rpl_semi_sync_slave_enabled=1;
如果要使mariadb重启后也有效,需把上面的参数写入配置文件中