中继日志是连接mastert和slave的信息,它是复制的核心,I/O线程将来自master的事件存储到中继日志中,中继日志充当缓冲,这样master不必等待slave执行完成就可以发送下一个事件。
在上图中,我们可以看到中继日志和binlog的结构差不多,只不过是多了一些文件,中继日志维护两个文件来跟踪复制的进度,即中继日志信息文件和master日志信息文件,文件名由是配置文件中的两个参数控制:
relay-log-info-file=filename,如果没有指定,则该文件位于服务器的数据目录下,默认文件名为relay-log.info。relay log info log文件记录了备节点应用relay log文件的进度情况
[root@linux-node2 data]# cat relay-log.info
7
./slave-relay-bin.000002
284
master-bin.000002
334
0
0
1
mater-info-file=filename,这个参数设置master日志信息文件名,默认文件名为:master.info,文件中包含mater的读位置,以及连接master和启动复制必需的所有信息。当slave的I/O线程启动时,如果有master.info文件,则线程从这个文件读取信息。
[root@linux-node2 data]# cat master.info
23#文件的行数
master-bin.000002#当前正在读取的linlog文件
334#最后读取的binlog位置
192.168.10.71#master主机
repl_user#复制用户
123456#用户的密码
3306#master的端口
60#slave尝试重新连接的次数
0#启用ssl,值为1,否则为0
0
30.000#心跳
0
0e9896a7-14f7-11e7-a0e6-000c2900551e#master的UUID
86400#重试的次数
0
执行start slave命令,中继日志文件,master.info文件和reloy-log.info文件才会被创建。resset slave命令执行会删除master.info文件和reloy-log.info两个文件。