MySQL中继日志 Relay Log

原因

主从中断导致relay log大量堆积,导致磁盘告警,参数relay_log_purge设置为on ,relay log 在应用完成后本该自动删除,但是由于主从中断,导致relay log大量堆积,从而磁盘告警。

需要手动清理relay log释放磁盘空间后进行主从恢复。

清理方法

reset slave; 

中继日志知识

概念

中继日志 和 二进制日志一样 ,由一组编号文件 (包含描述数据库更改的事件)和一个索引文件(包含所有使用的中继日志文件的名称)组成 。

查看

中继日志文件与二进制日志文件具有相同的格式,可以使用mysqlbinlog读取。

命名

中继日志的命名规则: host_name-relay-bin.nnnnnn 

host_name:副本服务器的主机名

 nnnnnn :序列号,从000001.开始

从实例 使用索引文件host_name-relay-bin.index 跟踪当前正在使用的中继日志文件

注意点

如果从实例中继日志文件的命名规则是基于服务器的hostname,在建立主从关系后,如果改变从实例服务器的主机名则会出现如下错误 failed to open the relay log and Could not find target log during relay log initialization 从而导致复制失败。如果你确定以后副本服务器的主机名会发生变化,则你可以使用系统变量  relay_log and relay_log_index  来确定中继日志文件 和 索引文件的前缀。从而不依赖于服务器的主机名。

产生新日志的场景

  • IO thread 启动时
  • 日志刷新时 ,例如执行 flush logs mysqldamin flush-logs;
  • 超过系统变量  max_relay_log_size  设置的中继日志的大小,如果 max_relay_log_size  设置的为0 ,则  max_binlog_size 参数决定中继日志的大小。

删除中继日志

复制 SQL thread 在执行完文件中的所有事件并且不再需要它后,会自动删除中继日志文件。没有明确的机制来删除中继日志,因为复制 SQL 线程负责执行此操作。但是,FLUSH LOGS会轮换中继日志,这会影响复制 SQL 线程删除它们的时间。

MySQL :: MySQL 5.7 Reference Manual :: 16.2.4.1 The Relay Log

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DBA之路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值