面试宝典系列-MySql主从复制原理

实现原理图大体以下(来源网络):sql

复制过程:数据库

  1. 主服务器必须启用二进制日志,记录全部修改数据库的事件
  2. 主服务器建立一个I/O线程,从服务器建立一个I/O线程和一个SQL线程
  3. 从服务器上的I/O线程链接上主服务器,并告诉主服务器日志读取偏移位
  4. 主服务器I/O线程检查该值是否小于当前二进制日志偏移位
  5. 若是小于,则读取偏移位以后的数据给从服务器的I/O线程
  6. 从服务器I/O线程将读取到的数据依次写入到中继日志中,并记录当前偏移位(下次使用)
  7. 从服务器的SQL线程发现中继日志中新增了内容,则当即解析日志的新增内容,并依次执行。(从服务器和主服务器执行的都是相同的sql,保证了数据的一致性)

小结:服务器

  • 主从复制是异步的逻辑的SQL语句级的复制网络

  • 复制时,主库有一个I/O线程,从库有两个线程,I/O和SQL线程异步

  • 实现主从复制的必要条件是主库要开启记录binlog功能线程

  • 做为复制的全部Mysql节点的server-id都不能相同日志

  • binlog文件只记录对数据库有更改的SQL语句(来自主库内容的变动),不记录任何查询(select,show)语句server

 

相关文章
相关标签/搜索