MySQL主从复制原理
时间:2022-03-15 17:26
-
事务开始后,MySQL将事务操作串行写入binary log中,使得事务中语句交叉执行;当事务操作全部写入binary log完成后,master通知存储引擎提交事务。
-
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中去。
-
-
Slave SQL线程从中继日志读取事件,更新slave的数据,保持与master数据一致
-
补充说明
: -
slave监听到binary log有更新后,创建I/O线程,主动与master建立连接
-
建立连接后,master创建binlog dump process,读取binary log发送给I/O线程
-
relay log一般存于OS的缓存中,开销很小
- 网络图解
-
个人图解