【MySQL】半同步模式

1 半同步模式原理
1. 用户线程写入完成后 master 中的 dump 会把日志推送到 slave
2.slave 中的 io 线程接收后保存到 relaylog 中继日志
3. 保存完成后 slave master 端返回 ack
4. 在未接受到 slave ack master 端时不做提交的,一直处于等待当收到 ack 后提交到存储引擎
5. 5.6 版本中用到的时 after_commit 模式, after_commit 模式时先提交在等待 ack 返回后输出 ok
2.gtid 模式
当为启用 gtid 时我们要考虑的问题
  • master端的写入时多用户读写,在slave端的复制时单线程日志回放,所以slave端一定会延迟与master
  • 这种延迟在slave端的延迟可能会不一致,当master挂掉后slave接管,一般会挑选一个和master延迟日志最接近的充当新的master
  • 那么为接管master的主机继续充当slave角色并会指向到新的master上,作为其slave
  • 这时候按照之前的配置我们需要知道新的master上的posid,但是我们无法确定新的masterslave之间差多少

当激活GITD之后

当master出现问题后,slave2master的数据最接近,会被作为新的master

slave1指向新的master,但是他不会去检测新的masterpos id,只需要继续读取自己gtid_next即可

master主服务器设置gtid模式

在slave上:

启动slave

启用半同步模式
master 端配置启用半同步模式

#安装半同步插件
# 查看插件情况

# 打开半同步功能

# 查看半同步功能状态

在slave端开启半同步功能

# 查看半同步功能状态

# 重启 io 线程,半同步才能生效

  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xialliy

你的鼓励是我最大的支持!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值