mysql主从原理

mysql主从原理如图所示:

注:图片来源于网络,无侵犯意图,谢谢

总体分为3个阶段:

第一阶段:master将更改事件写进binlog,在提交事务前。

第二阶段:

2.1:从库通过手工执行change master to 语句连接主库,提供了连接的用户一切条件(user 、password、port、ip),并且让从库知道,二进制日志的起点位置(file名和position号)

2.2:当从库start slave后(slave启动I/O线程),从库的I/O线程与主库的Dump线程连接,从库根据change master to 语句提供的file名和position号,IO线程向主库发起binlog的请求

2.3:主库dump线程根据从库的请求,将本地binlog以events的方式发给从库I/O线程,

2.4:从库I/O线程接收binlog events,并存放到本地relay-log中,传送过来的信息,会记录到

第三阶段:从库SQL线程应用relay-log,并且把应用过的记录到中,默认情况下,已经应用过的relay 会自动被清理purge(SQL线程应用将数据写入数据库)

#这里容易忽略的问题:是主库主动推送binlog到slave,还是slave主动拉取binlog?答案是:主库推送dump,可以用网络抓包的形式证明

#欢迎留言

 

posted @ 2020-01-13 11:08  丶花开时  阅读(177)  评论(0)    收藏  举报