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

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

MySQL主从

MySQL主从(Master–Slave Replication),是数据库高可用、与读写分离的重要手段。

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

通过将事务在主库(Master)上执行的变更,复制到一个或多个从库(Slave)。

既能提高系统的读吞吐量,又能实现备份与灾难恢复。

 

MySQL主从原理

主从复制的核心,在于 二进制日志(binlog)机制。

主库将所有导致数据变更的操作,记录到二进制日志文件。

从库作为复制线程连接到主库,读取并回放这些二进制日志,从而使从库的数据状态与主库保持同步。

如下图所示:

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

比如:主库把所有更改操作(INSERT、UPDATE、DELETE 等)记录到 binlog 文件中。

从库则通过读取并重放这些日志,实现数据同步。

整个过程可以分为 三步:

1️⃣ 主库记录日志

主库执行写操作后,将变更写入 binlog。

2️⃣ 从库拉取日志

从库的 I/O 线程 连接主库,读取 binlog 内容,并写入 中继日志(relay log)。

3️⃣ 从库重放日志

从库的 SQL 线程 读取 relay log,并在本地执行相同的 SQL,达到同步目的。

MySQL 主从模式

MySQL 主从复制有三种可靠性模式,对应不同业务需求。

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

1️⃣ 异步复制(Asynchronous)

主库执行事务后立即返回,不等待从库;

这是,默认模式;

优点:性能高;

缺点:主库崩溃可能导致数据丢失。

2️⃣ 半同步复制(Semi-synchronous)

主库在提交事务后,需等待至少一个从库确认接收 binlog;

减少数据丢失风险;

适用于对一致性要求较高的系统。

3️⃣ 全同步复制(Fully Synchronous)

主库需等待所有从库确认;

数据一致性最高;

性能开销大,一般不用于生产。

评论交流
    说说你的看法