MySQL主从复制
MySQL主从复制
MySQL主从复制是一个异步的复制过程,底层基于MySQL数据库自带的二进制日志功能。就是一台或多台MySQL数据库(slave, 即从库)从另一台MySQL数据库(master, 即主库)进行日志的复制然后再解析日志并应用到自身,最终实现从库的数据和主库的数据保持一致。MySQL主从复制是MySQL数据库自带功能,无需借助第三方工具。
MySQL复制过程分成三步:
- master将改变记录到二进制日志(binary log)
- slave将master的binary log拷贝到它的中继日志(relay log)
- slave重做中继日志中的事件,将改变应用到自己的数据库中

为什么要做主从复制
- 读写分离:把读请求分摊到从库,提高读吞吐
- 高可用与容灾:主库故障时可提升从库为主库(需要配合故障转移方案)
- 备份与分析:从库可用于备份或离线分析,降低对主库影响
需要注意的现实约束
- 异步复制意味着“可能延迟”:主库刚写入的数据,从库不一定立刻可见
- 读写分离时要处理“读到旧数据”的问题(例如读主、延迟感知、强一致场景不分离)
- 复制链路依赖 binlog 的正确配置与网络稳定性
学习路径(建议顺序)
-
配置前提与账号权限:MySQL主从复制-配置前提
-
读写分离案例:MySQL主从复制-读写分离案例