YAZONG 我的开源

Mysql主从复制原理过程

 
0 评论0 浏览

1、自个画的流程图。

Screenshot20200105Mysql主从复制原理过程你可以选择不平凡51CTO博客.png

2、简单描述mysql主从复制原理过程

2、1(对应上图步骤1)

在SLAVE服务器上执行start slave命令开启主从复制开关,开始进行主从复制。

2、2(对应上图步骤2)

此时,SLAVE服务器的I/O线程会通过在MASTER上已经授权的复制用户权限请求连接MASTER服务器,并请求从指定binlog日志文件的指定位置(日志文件名和位置就是在配置主从配置复制服务时执行change master命令指定的)之后开始发送binlog日志内容。

2、3(对应上图步骤3)

MASTER服务器接收到来自SLAVE服务器的I/O线程的请求后,其上负责复制的I/O线程会根据SLAVE服务器的I/O线程请求的信息分批读取指定binlog日志文件指定位置之后的binlog日志信息,然后返回给SLAVE端的I/O线程。返回的信息中除了binlog日志内容外,还有在MASTER服务器端记录的新的binlog文件名称,以及在新的binlog中的下一个指定更新位置。

2、4(对应上图步骤4)

当SLAVE的I/O线程获取到MASTER服务器上I/O线程发送的日志内容、日志文件及位置点后,会将binlog日志内容依次写入到SLAVE端自身的Relay log(即中继日志)文件(Mysql-relay-bin.xxxxxx)的最末端,并将新的binlog文件名和位置记录到master-info文件中,以便下一次读取MASTER端新binlog日志时能够告诉MASTER服务器从新binlog日志的指定文件及位置开始请求新的binlog日志内容。

2、5(对应上图步骤5)

SLAVE服务器端的SQL线程会实时检测本地Relay log中I/O线程新增加的日志内容,然后及时地把Relay log文件中的内容解析成SQL语句,并在自身SLAVE服务器上按SQL语句的位置顺序执行应用这些SQL语句,并在relay-log.info中记录当前应用中继日志的文件名及位置点。

3、注意事项

master-info记录新binlog文件名和文件位置。

relay-log.info记录当前Relay Log(中继日志)的文件名和文件位置。

Relay Log(中继日志)记录真实日志(binlog)内容。


标题:Mysql主从复制原理过程
作者:yazong
地址:https://blog.llyweb.com/articles/2016/08/23/1578158165915.html