MySQL主从同步原理

马谦马谦马谦 2018年2月6日13:31:21 发表评论
文章最后编辑于:2020-3-16 23:32:14

一、主从复制原理

MySQL主从复制依赖binlog,binlog中记录了数据库中的执行过的语句,主从复制时,复制的并不是整个数据库中的所有数据,而是从上次同步到现在所执行过的SQL语句。

执行主从同步时,主库会有一个Log-Dump线程和从库同步,把binlog发送给从库。从库则有一个I/O线程和SQL-Thread线程分别用于和主库同步和重放。同步过程是:

  1. 从库的I/O线程向主库请求同步,主库把数据发送过来。
  2. 收到主库的binlog后,从库会把日志放到relay-log。
  3. SQL线程重放SQL语句,数据达到同步。

MySQL主从同步原理

二、复制方式

2.1 异步复制

默认情况下MySQL是异步复制,即SQL语句执行完成后写入binlog就可以了,不用等待主从数据同步完成。

2.2 半同步复制

同步复制的意思是每次执行SQL语句要等待从库写入到relay log后才能继续往下执行,这样就避免了主库以外宕机后从库数据不一致的情况。

MySQL主从同步原理

本文共执行59次查询,耗时0.352秒!
马谦马谦马谦

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: