主从原理

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. 新的从如何知道从新的主哪个位置开始索取日志

原文地址:https://www.cnblogs.com/jesper/p/7488748.html