17.2.2.2 Slave Status Logs
复制slave server 创建2个日志,默认的,这些日文件命名为master.info 和relay-log.info,
在数据目录下。 名字和文件的位置 可以通过 –master-info-file and –relay-log-info-file options改变,
在MySQL 5.6以后, 两者都可以写入到tables 通过设置相应的选项:
使用–master-info-repository 让master info log写入到 mysql.slave_master_info table,
使用–relay-log-info-repository to have the relay log info log written to the mysql.slave_relay_log_info table.
两种状态日志 包含SHOW SLAVE STATUS语句的信息, 因为状态信息被存储在磁盘,
它们在server 关闭后存活下来。 下一次slave启动时,它读取两个日志来决定 slave已经处理在从master 读取
binary log 的信息和处理它自己的relay logs.
master info log 文件或者表 应该被保护,因为它包含了密码用于连接到master.
slave I/O thread 更新master info log
slave SQL thread更新relay log info log,在MySQL 5.6,relay-log.info 文件包含行数和复制延迟值
MySQL 5.6之前,relay-log.info 文件不包含行数或者延迟值
注意:
如果你降低一个slave server的版本老于MySQL 5.6, 老的server 不直接读取relay-log.info 文件。
为了解决这个问题, 在一个文本编辑器中修改该文件,通过删除包含行数的初始行。
relay-log.info 文件的内容 和状态信息通过SHOW SLAVE STATUS语句不能匹配,
如果relay-log.info 文件没有被刷新到磁盘。 理想情况下,你只需要查看relay-log.info 在一个没有运行的slave上,
对于一个运行的系统,你可以使用SHOW SLAVE STATUS,或者查询slave_master_info和slave_relay_log_info表
如果你写状态信息到表里。