MySQL5.7的半同步复制

在线切换

在master上执行
mysql>install plugin rpl_semi_sync_master SONAME 'semisync_master.so';
在slave上执行
mysql>install plugin rpl_semi_sync_slave SONAME 'semisync_slave.so';
可以使用show plugins;查看安装成功没有
mysql>set global rpl_semi_sync_master_enabled=1;
mysql>set global rpl_semi_sync_master_timeout=1000;
mysql>set global rpl_semi_sync_slave_enabled=1;
stop slave io_thread;
start slave io_thread;

停机切换

[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000  #如果超过1秒钟Slave没响应,就会从半同步转向传统复制
rpl_semi_sync_slave_enabled=1

监控

show variables like '%semi%';  #是否开启半同步
show global status like '%semi%';
Rpl_semi_sync_master_no_tx  #这个值是没有经过半同步复制的事物个数
Rpl_semi_sync_master_yes_tx #和上述值意义相反

半同步增加-等待多个Slave的应答

  • Master接收到N个slave的应答后,才commit十五
mysql>set global rpl_semi_sync_master_wait_for_slave_count=N

你可能感兴趣的:(MySQL5.7的半同步复制)