-
什么是主从复制?
主从复制是指将主数据库的DDL和DML通过二进制日志传到从库上,然后在从数据库上对这些日志进行重新执行,从而使从数据库和主数据库的数据保持一致
2. 主从复制的原理
2.1 Mysql主库在事务提交时会将数据变更作为事件记录在二进进制日志Binlog中
2.2 主库推送二进制日志文件Binglog中的事件到从库的中继日志Relay Log中,之后从库根据中继日志重做数据变更操作,通过逻辑复制来达到主库和从库的数据一致性
2.3 Mysql通过三个线程来完成主从库间的数据复制,其中Binglog Dump线程跑在主库上,IO线程和SQL线程跑在从库上
2.4 执行流程: 当在从库上启动复制时,首先创建I/O线程连接主库,主库随后创建Binlog Dump线程读取数据库事件并发送给I/O线程,I/O线程获取到事件数据后更新到从库中的中继日志Relay Log中去,之后从库上的SQL线程读取中继日志Realy Log中更新的数据事件并应用,如图所示