【mysql】如何实现主从同步

今天猫哥总结一下mysql的主从同步。

原理步骤:

  1. master提交完事物后,写入binlog
  2. slave连接到master,获取binlog
  3. master创建dump线程,推送binlog到slave
  4. slave启动一个IO线程读取同步过来的master的binlog,并将其记录到relay log中继日志中
  5. slave再开启一个sql线程读取relay log事件并在slave执行,完成同步
  6. slave记录到自己的bin log中


     

    由于msql默认的复制方式是异步的,主库把日志发送给从库后不关心从库是否已经处理,这样会产生一个问题就是假设主库宕机,从库处理失败,这时当从库升为主库后,日志就丢失了。这里衍生出两个概念:
    全同步复制:
    主库写入binlog后强制同步日志到从库,所有的从库都执行完成后才会返回给客户端,但是很显然这个方式数据库的性能会受到严重影响。
    半同步复制:
    和全同步不同的是,半同步的复制的逻辑是这样的,从库写入日志成功后返回ACK确认给主库,主库收到至少一个从库的确认就认为写操作完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值