1、自个画的流程图。
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)内容。