MySQL主从原理详解(图文全面总结)

MySQL是大型架构的核心,下面我重点详解MySQL主从原理@mikechen

MySQL主从

MySQL主从复制(Master-Slave Replication),是一种常见的数据库高可用性、和数据架构方案。

通过将主数据库(Master)的更改,同步到从数据库(Slave),实现数据冗余、负载均衡和故障恢复。

MySQL主从原理详解(图文全面总结)-mikechen

主要特点与作用:

  • 实时灾备,方便故障切换;

  • 读写分离,减轻主库压力,提高读性能;

  • 数据备份,避免对业务的影响。

 

MySQL主从原理

MySQL 主从复制依赖于 二进制日志(Binary Log,简称 binlog)。

简单来说,主库将所有数据变更记录在 binlog 中,从库读取这些记录,并在自己身上重新执行一遍,从而保持数据同步。

MySQL主从原理详解(图文全面总结)-mikechen

主要,包含3大关键步骤:

① 主库记录 binlog 日志

当主库执行写操作(如 INSERTUPDATEDELETE)时:

  1. MySQL 在执行事务时,除了更新数据文件,还会将变更操作记录到 binlog(二进制日志);

  2. binlog 记录的是“发生了什么操作”,而不是数据文件本身;

  3. 事务提交后,binlog 刷盘持久化。

📌 这一阶段是复制的起点。

② 从库 I/O 线程拉取日志并写入 relay log

当从库启动复制后:

  1. 从库通过 I/O 线程 连接主库;

  2. 主库启动 Binlog Dump 线程,将 binlog 内容发送给从库;

  3. 从库接收到日志后,写入本地 relay log(中继日志) 文件中。

📌 relay log 是主库 binlog 的本地缓存副本。

③ 从库 SQL 线程重放 relay log

最后:

  1. 从库的 SQL 线程 读取 relay log;

  2. 按顺序执行其中的 SQL 语句;

  3. 从库数据同步到与主库一致的状态。

这一步是真正的数据同步阶段,执行完后,主从数据完全一致。

评论交流
    说说你的看法