一、两台mysql服务器
192.168.217.110
192.168.217.111
二、
1、先确认MySQL服务器是否支持动态增加插件
mysql>select @@have_dynamic_loading
2、分别在主从库上安装对用插件
插件一般默认在MySQL安装目录/lib/plugin下,可以去查看一下是否存在
主库的插件是semisync_master.so,从库是semisync_slave.so
mysql>install plugin rpl_semi_sync_master soname 'semisync_master.so';
mysql>install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
3、安装完成后,在plugin表(系统表)中查看一下
mysql>select * from mysql.plugin;
4、在主从库中开启半同步复制
主:
mysql>set global rpl_semi_sync_master_enabled=1;
mysql>set global rpl_semi_sync_master_timeout=30000;
从:
mysql>set global rpl_semi_sync_slave_enabled=1;
注意:如果之前配置的是异步复制,在这里要重启一下从库的IO线程,如果是全新的半同步则不用重启.
重启命令是:mysql>stop slave io_thread;start slave io_thread;
5、在主库上查看半同步复制的状态
mysql> show status like 'Rpl_semi_sync_master_status';
+-----------------------------+-------+
| Variable_name | Value |
+-----------------------------+-------+
| Rpl_semi_sync_master_status | ON |
+-----------------------------+-------+
1 row in set (0.00 sec)
在输出信息中,我们重点关注三个参数:
rpl_semi_sync_master_status OFF/ON #ON表示半同步复制打开,OFF表示关闭
rpl_semi_sync_master_yes_tx [number] #这个数字表示主库当前有几个事务说通过半同步复制到从库的
rpl_semi_sync_master_no_tx [number] #表示有几个事务不是通过半同步复制到从库的