开发者社区 问答 正文

用户指南-MySQL Binlog日志的生成和清理规则



Binlog日志的生成规则


MySQL实例空间内生成binlog日志的规则如下:


  • 通常情况下,当前binlog大小超过500MB时会切换到下一序号文件继续写入,即写满500MB就会生成新的binlog日志文件。新的binlog文件继续写入,老的binlog文件并不会立刻上传,会异步上传。

  • 有些情况下,binlog日志不满500MB就不再写入,比如由于命令的执行、系统重启等原因。

  • 有些情况下,会出现binlog文件尺寸超过500MB的情况,比如当时在执行大事务,不断写入binlog导致当前binlog文件尺寸超过500MB。


Binlog日志的保存及清理规则


MySQL实例的空间内默认清理binlog日志的规则如下:

  • 实例空间内默认会保存最近18个小时内的binlog文件。

  • 当实例使用空间小于购买空间的80%时,系统会保存购买空间的30%的binlog(即使该binlog文件已经上传到OSS内)。

  • 当实例使用空间超过购买空间的80%时,binlog会在上传到OSS后,发起删除本地数据的请求,但本地删除会有任务调度,有一定延迟。

  • Binlog文件上传到OSS后,才可以在RDS控制台上显示。查看步骤如下:

    1. 登录 RDS管理控制台

    2. 选择要管理的实例所在的地域。

    3. 单击目标实例右的ID,进入基本信息页面。

    4. 在左侧导航栏中,选择备份恢复,进入备份恢复页面。

    5. 选择日志备份标签页,即可查看已上传的binlog日志。

  • Binlog日志在后台生成,可在RDS控制台中下载,大概需要30~60分钟,如果binlog文件较大,所需时间更长。


手动清理Binlog日志


您可以通过RDS控制台手动清理Binlog日志以降低MySQL实例磁盘空间的使用率。详情请参见 MySQL 实例空间使用率过高的原因和解决方法中的Binlog文件占用高的解决方法。
如果问题还存在,请联系 阿里云售后支持

展开
收起
梨好橙 2018-09-06 23:44:48 2546 分享 版权
阿里云 AI 助理回答

Binlog日志的生成与管理规则具体如下:

Binlog日志生成规则

  • 文件切换条件:MySQL实例在本地空间内生成Binlog日志时,一旦当前Binlog文件大小达到500MB,系统会自动切换到下一个序号的文件继续记录。这意味着当写入数据导致单个Binlog文件尺寸超过500MB时,将启动新的日志文件。
  • 特殊情况处理:并非所有情况下Binlog文件都会恰好达到500MB才切换。例如,在执行特定命令、系统重启或遇到大事务操作时,即使文件未满,也可能产生新的Binlog文件,或者单个文件大小可能超过500MB。

Binlog日志保存及清理规则

  • 默认保留策略:实例默认保存最近18小时内的Binlog文件。
  • 空间使用率影响
    • 当实例磁盘使用率低于80%,系统会较为宽松地保留Binlog,可保持至购买存储空间的30%。
    • 超过80%使用率时,已上传至OSS的Binlog会在本地发起删除请求,但实际删除存在延迟。
  • 查看与管理:通过RDS管理控制台的备份恢复页面,可以在“日志备份”标签页查看已上传的Binlog日志。需要注意的是,新产生的Binlog日志可能需要30至60分钟才能在控制台显示,大文件则需更长时间。

手动清理指导

  • 遇到磁盘空间紧张情况,您可以通过RDS控制台手动介入,进行Binlog日志的清理操作,以释放存储空间。具体步骤和注意事项建议参考阿里云官方文档中关于MySQL实例空间使用率过高问题的解决方法,特别是有关Binlog文件占用高的处理策略。
  • 若上述措施不能有效解决问题,应及时联系阿里云售后支持获取进一步帮助。

综上所述,Binlog日志的生成遵循固定大小触发切换的原则,并有灵活的保存与清理机制来适应不同场景下的存储需求和性能管理。


注释: 引用自参考资料中的生成规则描述。 引用自参考资料中的保存及清理规则说明。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答