mysql半同步复制_MySQL半同步复制原理配置与介绍详解

本文介绍了MySQL半同步复制的原理和配置过程,旨在解决异步复制可能导致的数据不一致问题。在半同步复制中,主服务器等待从服务器确认接收binlog日志,确保数据完整性。配置涉及安装插件、修改配置文件、设置复制参数,并通过实例演示了主从切换和异常处理。半同步复制在数据一致性要求高的场景下更为适用,虽然牺牲了部分性能。
摘要由CSDN通过智能技术生成

环境介绍:

Ubuntu Server 16.04.2+MySQL 5.7.17 Community Server (GPL)

MySQL安装

1、下载mysql-apt-config_0.8.3-1_all.deb

7c517571403217e84057905425b17271.png

2、安装deb

>sudo dpkg -i mysql-apt-config_0.8.3-1_all.deb

3、更新源

>sudo apt-get update

4、安装MySQL

>sudo apt-get install mysql-server

5、根据提示选择安装和设置密码。

另外,还需要对其进行设置,绑定的IP和打开防火墙的3306端口,这里主要是学习MySQL半同步复制,对MySQL的安装不做多解释,如果疑问欢迎留言。

MySQL半同步复制介绍

c188df420cf27b2c50776c6b8a5457fb.png

(1)默认情况下,MySQL的复制功能是异步的,异步复制可以提供最佳的性能, 主库把binlog日志发送给从库,这一动作就结束了,并不会验证从库是否接收完毕,这一过程,也就意味着有可能出现当主服务器或从服务器端发生故障的时候,有可能从服务器没有接收到主服务器发送过来的binlog日志,这就会造成主服务器和从服务器的数据不一致,甚至在恢复时造成数据的丢失。

注意:

半同步复制模式必须在主服务器和从服务器端同时开启,否则主服务器默认使用异步复制模式。

(2)异步复制案例:

(3)为了解决上述可能发生的错误,MySQL 5.5 引入了一种半同步复制模式。该模式可以确保从服务器接收完主服务器发送的binlog日志文件并写入到自己的中继日志relay log里,然后会给主服务器一个反馈,告诉主服务器已经接收完毕,这时主服务线程才返回给当前session告知操作完成。

(4)当出现超时情况是,主服务器会暂时切换到异步复制模式,直到至少有一个从服务器从及时收到信息为止。

(5)中继日志的自我修复:

从MySQL 5.5.X 版本开始,增加了relay_log_recovery参数,这个参数的作用是:当slave从库宕机后,假如relay.log损坏了,导致一部分中继日志没有处理,则自动放弃所有未执行的relay-log,并且重新从master上获取日志,这样就保证了relay-log的完整性。默认情况下该功能是关闭的,将relay_log_recovery的值设置为1时,可在slave从库上开启该功能,建议开启。

(6)半同步复制与异步复制的切换:

半同步复制的工作原理就是当slave从库IO_Thread线程将binlog日志接收完毕之后,要给master主库一个确认,如果rpl_semi_sync_master_timeout=10000 (10秒)超过10秒未收到slave从库的接受确认信号,那么就会自动切换为传统的异步复制模式。

MySQL半同步复制配置

首先,需要安装两个MySQL,这里是:

Master:192.168.1.227

Slave:192.168.1.224

原始数据库的模样如下:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值