MySQL 主从复制详解:原理、配置与架构
MySQL 主从复制是分布式数据库架构的基础,通过将主库(Master)的数据异步复制到从库(Slave),实现读写分离、负载均衡和数据备份。本文详细解析主从复制的核心原理、复制方式、配置步骤及常见架构。
主从复制的核心概念与线程
主从复制依赖三个关键线程协同工作,实现数据从 Master 到 Slave 的传递与应用:
| 线程类型 | 所在节点 | 核心作用 |
|---|---|---|
| Binlog Dump Thread | Master | 监测 Master 的二进制日志(binlog)变化,当有数据更新时,将 binlog 事件发送给 Slave。 |
| I/O Thread | Slave | 连接 Master,接收 Binlog Dump Thread 发送的 binlog 事件,写入 Slave 的中继日志(relay log)。 |
| SQL Thread | Slave | 读取中继日志中的 binlog 事件,解析并执行 SQL 语句,将 Master 的数据变更应用到 Slave。 |
主从复制的三种方式
根据数据同步的时效性和一致性保障,主从复制分为以下三种方式:
1. 异步复制(默认方式)
- 原理:Master 执行事务后,将变更写入 binlog 即返回成功,无需等待 Slave 确认接收。
- 特点:
- 性能最优(无等待延迟)。
- 存在数据不一致风险(若 Master 崩溃,Slave 可能未收到最新 binlog)。
- 适用场景:对数据一致性要求不高,优先追求写入性能的场景(如日志存储)。