跳至主要內容

MySQL主从复制

lament-z大约 1 分钟

MySQL主从复制

基础逻辑

所有的主从逻辑基本上都是把数据从主服务器同步到从服务器

MySQL 也一样, 主库 上数据变化会写入二进制文件,binlog,中,然后通过IO把 binlog 的内容写入从库中继日志中,然后从库中继日志中读取并执行其中的 SQL语句 完成同步。

主要涉及三个线程: binlog 线程、I/O 线程和 SQL 线程。

  • binlog 线程

负责将主库上的数据更改写入 binlog 中。

  • I/O 线程

负责从主服务器上读取 binlog,并写入从库中继日志中。

  • SQL 线程

负责读取中继日志并重放其中的 SQL 语句。

同步模式

全同步模式

主库在写入 binlog 之后直接开始强制同步到从库,一直要等到从库完成数据同步才会返回给客户端,性能较差,非常少见。

半同步模式

半同步跟全同步的区别是,在IO那一步中继日志写入完成就给主库发个确认消息,主库 只要收到任意一个从库(假设一主多从)返回的确认消息就认为本次写操作成功,返回给客户端。

上次编辑于:
贡献者: Lament