mysql 同步 半同步_mysql主从(半同步及增强半同步)

启动半同步之前需配好异步主从.异步主从配好后再通过安装插件,设置参数,重启IO线程启动半同步复制.

1.主库和从库都需要安装插件

主库:mysql> INSTALL PLUGIN

rpl_semi_sync_master SONAME 'semisync_master.so';

从库:mysql> INSTALL PLUGIN

rpl_semi_sync_slave SONAME 'semisync_slave.so';

主库从库分别查看插件是否加载成功: mysql> show

plugins;

在安装完插件后,半同步复制默认是关闭的,这时需设置参数来开启半同步.

2.启动半同步复制

设置参数启动:

主库:  mysql>  SET

GLOBAL rpl_semi_sync_master_enabled = 1;

从库:  mysql>  SET

GLOBAL rpl_semi_sync_slave_enabled = 1;

以上的启动方式是在命令行操作,也可写在配置文件中。

在有的高可用架构下,master和slave需同时启动,以便在切换后能继续使用半同步复制

[mysqld]

plugin_dir=/usr/local/mysql/lib/plugin

plugin_load =

"rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"

rpl_semi_sync_master_enabled=1

rpl_semi_sync_slave_enabled=1

rpl_semi_sync_master_timeout=1000

rpl_semi_sync_master_wait_for_slave_count=1

重启从库的IO线程:

STOP

SLAVE IO_THREAD;

START

SLAVE IO_THREAD;

如果没有重启,则默认还是异步复制,重启后,slave会在master上注册为半同步复制的slave角色。这时候,主的error.log中会打印如下信息:

2017-04-19

11:09:26 28300 [Note] Semi-sync replication switched ON with slave

(server_id: 28703307) at (mysql-bin.000002, 510)

2017-04-19

11:09:26 28300 [Note] Start semi-sync binlog_dump to slave

(server_id: 28703307), pos(mysql-bin.000002, 510)

2017-04-19

11:09:26 28300 [Note] Stop asynchronous binlog_dump to slave

(server_id: 28703307)

3.查看半同步复制

查看半同步是否在运行:

主库执行:

mysql> show

status like 'Rpl_semi_sync_master_status';

从库执行:

mysql> show

status like 'Rpl_semi_sync_slave_status';

这两个变量常用来监控主从是否运行在半同步复制模式下。

主库执行:mysql>  show status like

'%semi%';

Rpl_semi_sync_master_status:指示主服务器使用的是异步复制模式,还是半同步复制模式。

Rpl_semi_sync_master_clients:显示有多少个从服务器配置成了半同步复制模式。

Rpl_semi_sync_master_yes_tx:显示从服务器确认的成功提交数量。

Rpl_semi_sync_master_no_tx:显示从服务器确认的不成功提交数量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值