18.主从同步

navyum / 2025-02-15 / 原文

主从复制

  • MySQL 集群的主从复制过程梳理成 3 个阶段:
    1. 写入 Binlog:主库写 binlog 日志,提交事务,并更新本地存储数据。
    2. 同步 Binlog:把 binlog 复制到所有从库上,每个从库把 binlog 写到暂存日志中。
    3. 回放 Binlog:回放 binlog,并更新存储引擎中的数据。
  • 具体详细过程如下:
    1. MySQL 主库在收到客户端提交事务的请求之后,会先写入 binlog,再提交事务,更新存储引擎中的数据,事务提交完成后,返回给客户端“操作成功”的响应。
    2. 从库会创建一个专门的 I/O 线程,连接主库的 log dump 线程,来接收主库的 binlog 日志,再把 binlog 信息写入 relay log 的中继日志里,再返回给主库“复制成功”的响应。
    3. 从库会创建一个用于回放 binlog 的线程,去读 relay log 中继日志,然后回放 binlog 更新存储引擎中的数据,最终实现主从的数据一致性。 Img