开发者社区 问答 正文

MySQL Binlog日志的生成和清理规则



Binlog日志的生成规则


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


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

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

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


Binlog日志的保存及清理规则


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

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

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

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

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

    1. 登录 RDS管理控制台

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

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

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

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

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


手动清理Binlog日志


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

展开
收起
云栖大讲堂 2017-11-03 11:12:50 4041 分享 版权
阿里云 AI 助理回答

您提到的Binlog日志生成与管理规则,主要针对的是MySQL数据库在阿里云RDS服务中的运作方式。下面是对您信息的总结和补充,以便更清晰地理解这一过程:

Binlog日志生成规则

  1. 文件大小限制:默认情况下,当当前的binlog文件大小达到500MB时,MySQL会自动切换到下一个序号的文件继续记录日志。这意味着新的事务会被写入新的binlog文件中。
  2. 特殊情况处理
    • 如果执行了特定命令或系统重启,可能会导致即使binlog未满500MB也会停止写入并切换新文件。
    • 在大事务处理过程中,单个binlog文件的大小可能超过500MB,直到事务完成才会切换到新的文件。

Binlog日志保存及清理规则

  1. 默认保留时间:阿里云RDS实例默认保存最近18小时内的Binlog文件。
  2. 空间使用率影响
    • 当实例磁盘使用率低于购买空间的70%时,无论binlog是否已上传至OSS(对象存储服务),都会在本地保留18小时。
    • 当磁盘使用率超过70%,已上传至OSS的binlog文件会在本地发起删除请求,但实际删除存在延迟。
  3. 查看与下载:通过RDS管理控制台可以查看和下载已上传至OSS的binlog。请注意,从生成到可在控制台显示,可能需要30至60分钟,大文件则需更长时间。

手动清理Binlog日志

  • 如果需要手动降低实例磁盘使用率,可以通过RDS控制台进行binlog日志的清理操作。具体步骤可参考阿里云官方文档中关于“MySQL实例空间使用率过高的原因和解决方法”,其中包含详细的Binlog文件占用高时的解决策略。
  • 若问题复杂或上述方法不能有效解决问题,建议直接联系阿里云售后支持获取专业帮助。

综上所述,阿里云RDS对MySQL的Binlog管理设计了灵活且自动化的机制,旨在平衡数据安全、性能与存储资源的有效利用。用户可以根据实际情况,结合控制台功能与官方指导,合理调整和维护自己的数据库环境。

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