同步方式

MySQL主从复制有两种同步方式:传统方式和GTID方式,主库和从库同步方式保持一致。

GTID的复制流程:

  1. 主库在事务ID前面添加GTID生成新的事务ID,然后更新数据,并把新的事务ID和数据操作记录到binlog,通过dump线程通知从库有数据更新。
  2. 从库通过IO线程获取主库的binlog,把binlog写入relay log。
  3. 从库通过SQL线程在relay log中读取GTID,然后在从库binlog中查看是否有该GTID的记录,如果有记录说明该GTID的事务已经执行,从库不执行该GTID的事务,如果没有记录从库执行该GTID的事务,并把该GTID的事务和更新操作记录到binlog。
图3 GTID复制流程

适用场景

GTID复制已经是MySQL复制使用的一种通用复制方式,GTID的优势在于自动查找断点信息进行复制,不需要人为的查找binlog和pos点,更易于维护和管理。