一文读懂mysql的主从同步原理
基本过程
1.当master中发生数据改变时,会将变更记录写入二进制文件binlog中,也就是配置文件中log-bin指定的文件,这些记录叫做二进制日志事件(binary log events)
2.m
废话少说,先上图 基本过程 1.当master中发生数据改变时,会将变更记录写入二进制文件binlog中,也就是配置文件中log-bin指定的文件,这些记录叫做二进制日志事件(binary log events) 2.master通过binlog dump线程把二进制日志内容推送给Slave(从库) 3.Slave通过I/O线程读取Master中的binary log events并写入到它的中继日志(relay log) 4.Slave通过sql线程重做中继日志中的事件,把中继日志中的事件信息一条一条的在本地执行一次,完成数据在本地的存储(数据重放) push or pull? master通过dump线程将数据push给slave,slave是被动接收,而不是主动获取。 为什么是多个线程? 实现数据获取和重放的解耦,将同步过程变为异步执行,提高效率。 关于中继日志 slave的 I/O 线程将master的 binlog 日志读取过来,解析到各类 Events 之后记录到slave本地文件,这个文件就被称为 relay log。然后 SQL 线程会读取 relay log 日志的内容并应用到从服务器mysql原理,从而使从服务器和主服务器的数据保持一致。中继日志充当缓冲区,这样 master 就不必等待 slave 执行完成才发送下一个事件。 (编辑:源码网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |