企业-mysql的主从半同步复制

主从半同步复制(Semisynchronous replication)

一主多从模式下,有一个从节点返回成功,即成功,不必等待多个节点全部返回
异步复制可能会造成数据丢失,半同步复制就是为了解决数据丢失的问题
当出现超时情况时,主服务器会暂时切换到异步复制模式,直到至少有一台设置为半同步复制模式的从服务器及时收到信息为止。
半同步复制提高了数据的安全性,同时它也造成了一定程度的延迟,这个延迟最少是一个TCP/IP往返的时间。

server1:master

INSTALL PLUGIN rpl_semi_sync_master SONAME 'semisync_master.so';安装半同步插件

SELECT PLUGIN_NAME,PLUGIN_STATUS			查看插件
    -> FROM INFORMATION_SCHEMA.PLUGINS
    -> WHERE PLUGIN_NAME LIKE '%semi%';

SET GLOBAL rpl_semi_sync_master_enabled =1;	激活插件,开启半同步

show VARIABLES LIKE 'rpl_semi_sync%';		查看主库的变量值
rpl_semi_sync_master_enabled 				是否开启半同步 
rpl_semi_sync_master_timeout 				默认切换复制的延迟时间为10s (10000指10000毫秒)
rpl_semi_sync_master_trace_level 			开启半同步复制模式的调试级别默认32 
rpl_semi_sync_master_wait_for_slave_count 	至少有1个slave接收到日志 
rpl_semi_sync_master_wait_no_slave 			是否允许master的每个事物提交后都等待slave的回复信号 
rpl_semi_sync_master_wait_point 			等待的point 

在这里插入图片描述
在这里插入图片描述

show status like '%rpl%';			查看变量的状态
Rpl_semi_sync_master_clients               
Rpl_semi_sync_master_status         开启

在这里插入图片描述
server2:slave

INSTALL PLUGIN rpl_semi_sync_slave SONAME 'semisync_slave.so';	安装半同步模块

SELECT PLUGIN_NAME, PLUGIN_STATUS			查看插件
    -> FROM INFORMATION_SCHEMA.PLUGINS
    -> WHERE PLUGIN_NAME LIKE '%semi%';

SET GLOBAL rpl_semi_sync_slave_enabled=1;	激活插件
STOP SLAVE IO_THREAD;						激活插件之后必须要重启io进程
START SLAVE IO_THREAD;
show variables like '%rpl%';			
rpl_semi_sync_slave_enabled              

在这里插入图片描述
在这里插入图片描述
测试:
server2:先关闭io进程

STOP SLAVE IO_THREAD;	

在这里插入图片描述
server1:在master端插入数据,会等待10s(master端设置),没有接收到slave的ack请求,自动转换为异步复制,需要等待一个节点完成所有的复制

use westos 
insert into usertb values ('user5','123'); 	等待10s后切换为异步复制

insert into usertb values ('user6','123');	同步很快,已经变成异步

show status like '%rpl%';					发现半同步已经关闭OFF
Rpl_semi_sync_master_status  

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
server2:

start SLAVE IO_THREAD;
use westos
select * from usertb;				重新打开I/O线程,发现数据同步了,但这是异步复制所同步过来的数据。
show processlist;					查看数据同步的进度

在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值