MySQL主从复制原理

  1. 事务开始后,MySQL将事务操作串行写入binary log中,使得事务中语句交叉执行;当事务操作全部写入binary log完成后,master通知存储引擎提交事务。

  2. Slave不断监听主机的二进制日志文件,有更新操作,则拷贝binary log到relay log;没有则睡眠等待。

    • Slave不断监听master的binary log文件,有改变创建工作线程:I/O线程,负责与master保持通讯。

    • 建立通讯后,master建立binlog dump process读取binary log并发给I/O线程,当relay log与binary log时,I/O睡眠等待新的事件。

    • I/O线程获取到数据库事件更新到从库的中继日志Realy log中去。

  3. Slave SQL线程从中继日志读取事件,更新slave的数据,保持与master数据一致

  4. 补充说明

  • slave监听到binary log有更新后,创建I/O线程,主动与master建立连接

  • 建立连接后,master创建binlog dump process,读取binary log发送给I/O线程

  • relay log一般存于OS的缓存中,开销很小

网络图解

个人图解

原文地址:https://www.cnblogs.com/yblackd/p/14533424.html