MYSQL半同步

sync:
主库接收一个事务,提交时,需要SLAVE已经写RELAY LOG之后,主库才会完事这个事务的提交,返回给客户端提交成功的提示。
当从库DOWN机或者网络问题,超过一定的时间设置, SYNC就会自动转为ASYNC。
当主库DOWN机时,因为数据已全部保证的同步到了从库, 因此而完成了0数据丢失。
优化点: 开启SEMI_SYNC后,每一个事务需等待备库接收日志后才返回给客户端, 如果是小事务, 两台主机的延迟又较小,则
SEMI-SYNC可以实现在性能很小损失的情况下0数据丢失。
缺点: 完成单条事务增加了额外的等待延迟,延迟的大小取决于网络的好坏。
SEMI-SYNC不是分布式事务, 主库会在自己完成事务后, 等待备库接收事务日志。

async:
这个是默认的同步方式,主库接收一个事务,提交时,不需要去管SLAVE是否写日志了就直接返回给客户端已提交成功。这种情况当主库
DOWN机了,从库上面是会有数据损失的,又或者当从库DOWN机后有可能造成从库无法追上主库的问题。

 

操作过程::
1. 加载模块:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

2. 主库操作:
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=1000;

3. 从库操作:
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
set global rpl_semi_sync_slave_enabled=1;
stop slave;
start slave;

sync:
主库接收一个事务,提交时,需要SLAVE已经写RELAY LOG之后,主库才会完事这个事务的提交,返回给客户端提交成功的提示。
当从库DOWN机或者网络问题,超过一定的时间设置, SYNC就会自动转为ASYNC。
当主库DOWN机时,因为数据已全部保证的同步到了从库, 因此而完成了0数据丢失。
优化点: 开启SEMI_SYNC后,每一个事务需等待备库接收日志后才返回给客户端, 如果是小事务, 两台主机的延迟又较小,则
SEMI-SYNC可以实现在性能很小损失的情况下0数据丢失。
缺点: 完成单条事务增加了额外的等待延迟,延迟的大小取决于网络的好坏。
SEMI-SYNC不是分布式事务, 主库会在自己完成事务后, 等待备库接收事务日志。

async:
这个是默认的同步方式,主库接收一个事务,提交时,不需要去管SLAVE是否写日志了就直接返回给客户端已提交成功。这种情况当主库
DOWN机了,从库上面是会有数据损失的,又或者当从库DOWN机后有可能造成从库无法追上主库的问题。



操作过程::
1. 加载模块:
INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';
INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';

2. 主库操作:
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=1000;

3. 从库操作:
install plugin rpl_semi_sync_slave soname 'semisync_slave.so';
set global rpl_semi_sync_slave_enabled=1;
stop slave;
start slave;

  

posted @ 2014-06-04 16:45  SMALL-D  阅读(188)  评论(0编辑  收藏  举报