关于Relay Log无法自动删除的问题
来源:互联网 发布:狮王红包软件 编辑:程序博客网 时间:2024/05/22 06:17
今天在运维一个mysql实例时,发现其数据目录下的relay-log 长期没有删除,已经堆积了几十个relay-log。
然而其他作为Slave服务器实例却没有这种情况。
综合分析后发现和以下原因有关。
然而其他作为Slave服务器实例却没有这种情况。
综合分析后发现和以下原因有关。
- 该实例原先是一个Slave -------导致relay-log 和 relay-log.index的存在
- 该实例目前已经不是Slave -------由于没有了IO-Thread,导致relay-log-purge 没有起作用( 这也是其他Slave实例没有这种情况的原因,因为IO-thread会做自动rotate操作)。
- 该实例每天会进行日常备份 -------Flush logs的存在,导致每天会生成一个relay-log
- 该实例没有配置expire-logs-days ------导致flush logs时,也不会做relay-log清除
简而言之就是: 一个实例如果之前是Slave,而之后停用了(stop slave),且没有配置expire-logs-days的情况下,会出现relay-log堆积的情况。
顺带也和大家分享下MySQL 内部Logrotate的机制
Binary Log rotate机制:
Relay Log rotate 机制:Binary Log rotate机制:
- Rotate:每一条binary log写入完成后,都会判断当前文件是否超过 max_binlog_size,如果超过则自动生成一个binlog file
- Delete:expire-logs-days 只在 实例启动时 和flush logs 时判断,如果文件访问时间早于设定值,则purge file
- Rotate:每从Master fetch一个events后,判断当前文件是否超过 max_relay_log_size 如果超过则自动生成一个新的relay-log-file
- Delete:purge-relay-log 在SQL Thread每执行完一个events时判断,如果该relay-log 已经不再需要则自动删除
- Delete:expire-logs-days 只在 实例启动时 和flush logs 时判断,如果文件访问时间早于设定值,则purge file (同Binlog file)
转自http://www.cnblogs.com/cenalulu/archive/2012/05/08/2490156.html
- 关于Relay Log无法自动删除的问题
- 关于Relay Log无法自动删除的问题
- 关于Relay Log无法自动删除的问题
- 关于Relay Log无法自动删除的问题(Neither --relay-log nor --relay-log-index were used)
- mysql relay-log.info 丢失问题
- 关于Cygwin无法删除的问题
- 关于无法删除Windows目录的问题
- 关于eclipse无法自动编译的问题
- 关于eclipse无法自动编译的问题
- 关于myeclipse无法自动提示的问题
- 关于eclipse无法自动提示的问题
- 关于eclipse无法自动编译的问题
- 关于log的问题
- 关于JBPM4.4无法删除历史数据的问题
- 关于OpenOffice转换失败,源文件无法删除问题的解决办法
- 关于app iPad上无法自动翻转的问题
- Relay log read failure
- relay-log命名规则
- 第三章 探索Apple平台语言Objective-C
- SIP RFC 关系图汇总--超全---part6
- SIP RFC 关系图汇总--超全---part7
- 第四章 CocoaTouch内幕
- 黑马程序员_java学习笔记07
- 关于Relay Log无法自动删除的问题
- JAVA图形编程入门(连载7)
- Invalid file name: must contain only [a-z0-9_.]
- 自动备份Oracle数据库
- IE 兼容 Javascript 读取checkbox的值
- 自己测的socket。学习笔记
- 最长单调递减子序列 采用二分搜索算法,时间复杂度O(nlgn)。
- Fedora下搭建Android开发环境
- ORACLE完全恢复和不完全恢复的区别