在主、从上安装和开启半同步插件
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'; Query OK, 0 rows affected (0.02 sec) mysql> set global rpl_semi_sync_master_enabled=on;
在主、从上检查是否安装成功
mysql> show variables like '%semi%'; +-------------------------------------------+------------+ | Variable_name | Value | +-------------------------------------------+------------+ | rpl_semi_sync_master_enabled | OFF | | rpl_semi_sync_master_timeout | 10000 | | rpl_semi_sync_master_trace_level | 32 | | rpl_semi_sync_master_wait_for_slave_count | 1 | | rpl_semi_sync_master_wait_no_slave | ON | | rpl_semi_sync_master_wait_point | AFTER_SYNC | +-------------------------------------------+------------+ 6 rows in set (0.00 sec)
相关参数解释
rpl_semi_sync_master_enabled ##设置为on表示开启了半同步功能 rpl_semi_sync_master_timeout ##单位是毫秒,表示如果主库等待从库回复消息的时间超过该值,就自动切换为异步复制模式 rpl_semi_sync_master_wait_for_slave_count ##它控制主库接收多少个从库写 事务 成功反馈,才返回成功给客户端 rpl_semi_sync_master_wait_point ##默认值是AFTER_SYNC,含义是主库将每个 事务 写入binlog,并传递给从库,刷新到中继日志,主库开始等待从库的反馈,接收到从库的回复之后,再提交事务并且返回“commit ok”结果给客户端
重启从库的io线程让设置生效
stop slave io_thread; start slave io_thread; 最好不要重启sql_thread,免得影响slave的重演工作。
