Mysql主从同步原理
一句话概括就是:slaver读取master的binlog并顺序执行
- MySQL的主从复制是一个异步复制过程。在master与slave之间实现整个主从复制的过程是由三个线程参与完成的。其中两个线程(SQL thread and IO thread)在slave端,另一个线程(IO dump thread)在master端。
- 要实现master的主从复制,首先必须打开master端的binlog记录功能,否则就无法实现。因为整个复制过程实际上就是slave从master端获取binlog日志,然后再在slave上以相同的执行顺序获取binlog日记记录中的各种sql操作。
知识点
- 3个线程:主库IO,从库IO,SQL线程
- 从库作用
- relay-log作用
- 异步复制
- binlog作用
主从同步详细过程
- master服务器将数据的改变记录二进制binlog日志,当master上的数据发生改变时,则将其改变写入二进制日志中。
- slave服务器会在一定时间间隔内对master二进制日志进行探测其是否发生改变,若发生改变,则开始一个I/O thread请求master二进制事件。
- 同时master为每个I/O thread启动一个 I/O dump thread,