什么是MySQL的主从同步机制?它是如何实现的?
重要内容
MySQL的主从同步机制是一种数据复制技术,用于将主数据库上的数据同步到一个或多个从数据库中(备库本身也可以被配置成另外一台服务器的主库)
主从同步基于 二进制日志(binlog) 实现,主库记录所有写操作(如INSERT、UPDATE、DELETE),从库通过读取并重放这些日志来保持数据一致
- 主库(Master)
- 处理所有写操作,并将操作记录到二进制日志(binlog)
- 每个主库需配置唯一的服务器ID,以便识别
- 从库(Slave)
- 通过I/O线程从主库拉取binlog,并写入本地中继日志(relay log)
- SQL线程读取中继日志并执行SQL语句,完成数据同步
扩展知识
主从同步的复制模式
MySQL支持三种复制模式:异步复制、半异步复制以及全同步复制
异步复制的具体流程
MySQL 默认的主从同步的复制模式为异步复制,以下为异步复制的具体流程
- 主库事务提交
- 客户端发起写操作(INSERT/UPDATE/DELETE)
- 主库执行事务,将变更写入存储引擎和二进制日志(Binlog)
- 主库直接返回成功响应给客户端,不等待从库同步
- 从库同步数据
- 从库的I/O线程向主库请求Binlog事件,主库通过Binlog Dump线程推送日志
- 从库将接收到的Binlog写入中继日志(Relay Log)
- 从库的SQL线程读取Relay Log并重放变更,更新本地数据