17.2.2.2 Slave Status Logs

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表

如果你写状态信息到表里。

原文地址:https://www.cnblogs.com/hzcya1995/p/13351311.html