:::tips
主从复制的过程
首先从库在连接到主节点时会创建一个 IO 线程,用以请求主库更新的 binlog,并且把接收到的 binlog 信息写入一个叫做 relay log 的日志文件中,而主库也会创建一个 log dump 线程来发送 binlog 给从库;同时,从库还会创建一个 SQL 线程读取 relay log 中的内容,并且在从库中做回放,最终实现主从的一致性。这是一种比较常见的主从复制方式。
:::
- master将提交的任务写到binlog**日志文件**中
- 有一个event在监听** binlog的日志变更,如果有变化就通知**dump thread
- dump thread 会去通知 slave 中的 **IO thread 有事件需要同步, IO thread 会去从 relay-log.info 中获取 slave中的对应的 binlog日志文件以及 pos** 位置
- 告诉mater需要同步的是哪一个binlog日志文件以及需要开始同步的pos位置
- master将pos位置后面的数据同步给slave
- slave拿到同步的数据后,回去写relay-log日志文件。slave中有一个SQL thread在监听relay-log文件的变更,发现有改变后就会执行语句。