最近服务器偶尔出现主从复制延时问题,今天看到官网在mysql5.5之后添加进了google的半同步复制插件,特此参考官网为windows服务器搭建了该环境,环境搭建完毕,可以运行,持续测试中------
windows server 2008
mysql5.6
have_dynamic_loading 采用show VARIABLES LIKE '
have_dynamic_loading
';查看是否支持动态加载 yes
然后加载插件linux下后缀名为so,官网文档是以linux为例
主
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.dll';
从
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.dll';
SHOW PLUGINS
可以查看安装的插件 对上述安装的进行查看。 主SET GLOBAL rpl_semi_sync_master_enabled = 1; 1开启 0关闭
SET GLOBAL rpl_semi_sync_master_timeout = 10000 ; 毫秒单位 10秒该参数主服务器 等待确认消息10秒后,不再等待,变为异步方式。 从
SET GLOBAL rpl_semi_sync_slave_enabled = 1;
STOP SLAVE IO_THREAD; START SLAVE IO_THREAD; 已经配置完毕,下面查看状态 1 SHOW VARIABLES LIKE 'rpl_semi_sync%';
主
显示四个配置参数2
SHOW STATUS LIKE 'Rpl_semi_sync%';
记录支持slave连接的个数
Rpl_semi_sync_master_clients
master 等待slave 回复的平均等待时间。 单位毫秒. Rpl_semi_sync_master_net_avg_wait_time
master 总的等待时间。 Rpl_semi_sync_master_net_wait_time
master 等待slave 回复的的总的等待次数 Rpl_semi_sync_master_net_waits
master 关闭半同步复制的次数。 Rpl_semi_sync_master_no_times
master 没有收到slave的回复而提交的次数,(应该可以理解为master 等待超时的次数) Rpl_semi_sync_master_no_tx
标记master现在是否是半同步复制状态 Rpl_semi_sync_master_status
时间函数未正常工作的次数 Rpl_semi_sync_master_timefunc_failures
master 花在每个事务上的平均等待时间。 Rpl_semi_sync_master_tx_avg_wait_time
master 总的等待次数。 Rpl_semi_sync_master_tx_wait_time
事务等待备库响应的总次数 Rpl_semi_sync_master_tx_waits
改变当前等待最小二进制日志的次数 Rpl_semi_sync_master_wait_pos_backtraverse
当前有多少个session 因为slave 的回复而造成等待。 Rpl_semi_sync_master_wait_sessions
master 成功接收到slave的回复的次数。 Rpl_semi_sync_master_yes_tx 从
标记slave 是否在半同步状态。 Rpl_semi_sync_slave_status on
该状态说明已经执行监视成功! 其它参数配置还在研究中,后期进行更新。