zoukankan      html  css  js  c++  java
  • 主从原理

    1、主从复制原理

    主从复制主要用途
    1. 灾备,主down机实现主从切换
    2. 从库数据备份和数据分析不影响主库性能
    3. 主从读写分离,提升tps和qps

    主从复制工作原理
     
    • 第一部分master记录二进制日志,binlog在事务提交时写入日志。
    • 第二部分slave将master的binary log拷贝到它自己的中继日志
      1. slave开始一个工作线程——I/O线程 连接主库
      2. I/O线程在master上打开一个普通的连接,然后开始binlog dump process。
      3. Binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件。I/O线程将这些事件写入中继日志。
      4. SQL线程从中继日志读取事件,并重做其中的事件而更新slave的数据,使其与master中的数据一致。只要该线程与I/O线程保持一致,中继日志通常会位于OS的缓存中,所以中继日志的开销很小。
        注意:
    1.  主库的dump 线程是因为从库的io 连接才起来的。
    2. 要分离看io thread和sql thread,可以关闭sql thread,io thread正常运行
    主从复制主库宕机,我们需要面临的问题
    1. 到底提升谁作为主库
    2. 如何处理提升后的新主和旧主之间的日志延迟问题
      1. 补上这个日志。
      2. 旧主不可达,日志丢失,造成数据丢失【半同步复制解决这个问题】
    3. 新从指向新主,不同的从change master 到不同位置
    4. 新的从如何知道从新的主哪个位置开始索取日志

  • 相关阅读:
    Thinkphp注释
    THINKPHP5 如何在 控制器内调用model模型
    thinkphp5路由定义
    Thinkphp5读取当前config配置文件
    thinkphp5计算代码块的性能
    thinkphp的执行流程
    php filter过滤器
    nginx在收到stop信号后的处理
    寻找重复数
    奶牛和公牛
  • 原文地址:https://www.cnblogs.com/jesper/p/7488748.html
Copyright © 2011-2022 走看看