mysql-主从同步工作原理

什么是MySQL主从复制?

  • MySQL主从复制意思是将数据从一个MySQL服务器的主节点复制到一个或多个从节点。
  • 异步复制是MySQL默认的复制模式。
    • 好处是不用一直访问master,对master造成压力
    • 坏处是主库写入binlog日志后即可成功返回客户端,无须等待binlog日志传递给从库的过程,如果主库一旦宕机,就有可能出现丢失数据的情况

为什么需要主从复制?

  • 主库负责写,从库负责读,减轻主库压力。而且有时候SQL语句会造成锁表的情况,导致暂时不能读的情况,使用主从,就能保证业务的正常运行
  • 数据热备
  • 便于架构的扩展。考虑以后io会更加频繁,以后可以做多库的存储,降低磁盘io访问频率,提高单个机器的io性能

主从复制原理

  1. 主库数据改变后,将其记录二进制binlog日志中
  2. 从库在一定时间间隔内对主库的二进制日志进行探测是否发生变化。如果发生变化,通过io thread线程对主库发起请求
  3. 主库会通过io dump thread线程向从库iothread线程传递二进制binlog日志
  4. 从库将得到的binlog日志保存至relay-log日志,通过mysql thread线程读取中继日志,执行里面的sql语句,在从节点上生成相应的数据,从而保证主从数据一致

注意点

  • 主从时间同步
  • 最好保证主从数据库版本一致,如果不能一致,也要保证主库的版本低于从库的版本
  • 主从一定要开启binlog功能
原文地址:https://www.cnblogs.com/wanwz/p/12908700.html