主从复制流程 - 图1
图片1.png

:::tips 主从复制的过程
首先从库在连接到主节点时会创建一个 IO 线程,用以请求主库更新的 binlog,并且把接收到的 binlog 信息写入一个叫做 relay log 的日志文件中,而主库也会创建一个 log dump 线程来发送 binlog 给从库;同时,从库还会创建一个 SQL 线程读取 relay log 中的内容,并且在从库中做回放,最终实现主从的一致性。这是一种比较常见的主从复制方式。 :::


  1. master将提交的任务写到binlog**日志文件**中
  2. 有一个event监听** binlog的日志变更,如果有变化就通知**dump thread
  3. dump thread 会去通知 slave 中的 **IO thread 有事件需要同步, IO thread 会去从 relay-log.info 中获取 slave中的对应的 binlog日志文件以及 pos** 位置
  4. 告诉mater需要同步的是哪一个binlog日志文件以及需要开始同步的pos位置
  5. master将pos位置后面的数据同步给slave
  6. slave拿到同步的数据后,回去写relay-log日志文件。slave中有一个SQL thread监听relay-log文件的变更,发现有改变后就会执行语句。

master节点Data文件夹

image.png

slave节点Data文件夹

image.png

从节点data目录master.info

image.png

从节点relay-log.info

image.png