• MySQL主从同步原理


    MySQL的主从复制中主要有三个线程:

    master binlog dump thread )、 slave I/O thread SQL thread ) ,Master⼀条线程和Slave中的两条线程。

    MySQL主从同步的过程:

    1. 主节点 binlog,主从复制的基础是 主库记录数据库的所有变更记录到 binlog binlog 是数据库服务器启动的那⼀刻起,保存所有修改数据库结构或内容的⼀个⽂件。
    2. 主节点 log dump 线程,当 binlog 有变动时,log dump 线程读取其内容并发送给从节点。
    3. 从节点 I/O线程接收 binlog 内容,并将其写⼊到 relay log ⽂件中。
    4. 从节点的SQL 线程读取 relay log ⽂件内容对数据更新进⾏重放,最终保证主从数据库的 ⼀致性。
    注:主从节点使⽤ binglog ⽂件 + position 偏移量来定位主从同步的位置,从节点会保存其已接收到的偏移量,如果从节点发⽣宕机重启,则会⾃动从 position 的位置发起同步

    由于mysql默认的复制⽅式是异步的,主库把⽇志发送给从库后不关⼼从库是否已经处理,这样会产⽣⼀个问题就是假设主库挂了,从库处理失败了,这时候从库升为主库后,⽇志就丢失了。由此产⽣两个概念。

    全同步复制:

    主库写⼊ binlog 强制同步⽇志到从库 ,所有的从库都执⾏完成后才返回给客户端,但是很显然这个⽅式的话性能会受到严重影响。

    半同步复制:

    和全同步不同的是,半同步复制的逻辑是这样, 从库写⼊⽇志 成功后返回ACK确认给主库,主库收到⾄少⼀个从库的确认就认为写操作完成。

     

  • 相关阅读:
    贵阳RapidSSL的ssl证书适合个人网站吗
    支持高频数采、实时流计算的储能可预测维护系统方案
    SpreadJS 15.2 英文版-Crack
    zoj 1465 Wall
    Day12--点击轮播图跳转到商品详情页
    DockerCompose安装、使用 及 微服务部署实操
    Flutter 处理主题 Theme 的一些建议
    C++算法:城市天际线问题
    你真的会数组去重吗?去重方法汇总解析,看着一篇就够了
    文件的操作方法
  • 原文地址:https://blog.csdn.net/m0_70734549/article/details/126267450