mysql5.5内置了半同步semisync,大家就无需再从google下载模块了。所谓半同步就是解决master正好在异步replication时崩溃掉了,而slave却没有接收到,造成master和slave不一致的情况。下面是我配置的基本经验:
配置完master-slave后(replication基本配置就不赘述了),我配置过程如下:
master端:
windows7+mysql5.5
master>show plugins (查看是否安装了rpl_semi_sync_master)
master>install plugin rpl_semi_sync_master SONAME 'semisync_master.so'(如果是windows版本,则是semisync_master.dll)
master>show plugins(查看是否确定安装上了)
配置文件:
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=10000 # 10 second
slave端:
centos6+mysql5.5
slave>install plugin rpl_semi_sync_slave SONAME ‘semisync_slave.so’(如果是windows,则是semisync_slave.so)
配置文件:
[mysqld]
rpl_semi_sync_slave_enabled=1
master和slave分别重启进程后,查看状态:
master>show variables like ‘rpl_semi%’
master>show global status like ‘rpl_semi%’;
Rpl_semi_sync_master_status:表示是否在同步状态,如果同步超时,会自动切换到Off状态
Rpl_semi_sync_master_clients:表示有多少半同步的slave连接上了
Rpl_semi_sync_master_yes_tx:表示成功同步了多少次提交
Rpl_semi_sync_master_no_tx:表示有多少次同步提交失败
slave>show variables like ‘rpl_semi%’;
slave>show global status like ‘rpl_semi%’;