MySQL5.6 半同步复制,保证数据库一致性,半同步复制需要使用插件,主从节点都需要安装插件。插件安装完之后 ,配置系统变量就可以启用和关闭半同步复制功能。
1.半同步实施前提
数据库版本为 5.5以上
have_dynamic_loadingsystem variable 为 YES.
复制已经正常运行。
2.安装插件
主节点
INSTALLPLUGINrpl_semi_sync_masterSONAME'semisync_master.so';
从节点
INSTALLPLUGINrpl_semi_sync_slaveSONAME'semisync_slave.so';
3.查看是否安装成功
showplugins;
显示类似说明安装成功
|rpl_semi_sync_master|ACTIVE|REPLICATION|semisync_master.so|GPL|
|rpl_semi_sync_slave|ACTIVE|REPLICATION|semisync_slave.so|GPL|
mysql>showvariableslike'%semi%';
+--------------------------------------------------------+-------+
|Variable_name|Value|
+---------------------------------------------------------+-------+
|rpl_semi_sync_master_enabled|OFF|
|rpl_semi_sync_master_timeout|10000|
|rpl_semi_sync_master_trace_level|32|
|rpl_semi_sync_master_wait_no_slave|ON|
|rpl_semi_sync_slave_enabled|OFF|
|rpl_semi_sync_slave_trace_level|32|
+---------------------------------------------------------+-------+
6rowsinset(0.00sec)
4.启用半同步
主节点启用半同步,超时时间为10S
SETGLOBALrpl_semi_sync_master_enabled=1;
SETGLOBALrpl_semi_sync_master_timeout=10000;
从节点启用半同步,重启复制线程生效
SETGLOBALrpl_semi_sync_slave_enabled=1;
STOPSLAVEIO_THREAD;
STARTSLAVEIO_THREAD;
5.确认半同步生效
showglobalstatuslike'rpl%';
6.持久化参数
Onthemaster:
[mysqld]
rpl_semi_sync_master_enabled=1
rpl_semi_sync_master_timeout=1000#1second
Oneachslave:
[mysqld]
rpl_semi_sync_slave_enabled=1