面试之MySQL的主从同步原理

mysql主从同步的过程:

MySQL的主从复制主要有三个线程:master(binlog dump thread)、slave(I/O thread, SQL thread)。master 一种主线程 和 Slave 中的两条线程。

  1:主节点 binlog ,主从复制的基础是 主库记录数据库所的所有变更到binlog。 binlog 是数据库服务器启动的时候,保存所有修改数据库结构的一个文件。

  2:主节点 log dumg线程,当binlog 有变动时,log dumo 线程读取器中的内容发送给从节点。

  3: 从节点I/O 线程接受binlog 内容,并将写入到对应的relay log(中继文件) 文件中

  4:从节点的SQL线程读取relay log文件内容对数据更新进行重放,最终保证主从数据库的一致性。

  注意: 主从节点binlog 文件+ pisiton 偏移量 来定位主从同步的位置,从节点会保存 已接收的偏移量,如果从节点发生down 机 重启,则会自动从 position的位置 发起同步。

由于mysql默认的复制方式 都是异步的,主库把日志发送给 从库后 不关心 从库是否已经处理,这样会产生一个问题。假设主库挂了。从库处理失败了。这时候 把 从库身为 主库后,日志就丢失了。

全同步复制:

主库写入binlog后强制同步日志 到 从库,所有的从库 都执行完成后才会返回给客户端,但是这个方式性能太低了

半同步复制:

和全同步不同的是,半同步复制的逻辑是这样的,从库写入日成功后返回ACK 确认后 主库,主动收到至少一个从库 的确认就认为 写操作完成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值