文档中心 > 云数据库 RDS 版

MySQL Binlog文件导致实例空间满的解决办法

更新时间: 访问次数:3537

问题描述

阿里云RDS MySQL版实例由于Binlog文件占满磁盘空间,会导致实例自动锁定,在实例详情页面的运行状态为“锁定中”。且在实例的监控与报警页面磁盘空间图中确认日志空间使用量较高,下图为示例图,具体值以实际环境为准。

问题原因

MySQL实例可能会由于大事务快速生成Binlog文件,导致实例空间满,为避免数据丢失,会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。

解决方案

阿里云提醒您:

  • 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
  • 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
  • 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。

前提条件

对于RDS MySQL 5.5、5.6、5.7和8.0版本的实例,建议您提前扩容磁盘,保证磁盘使用率不超过80%,扩容方法请参见变更配置。其次建议您清理无用日志或数据。

注意事项

执行清理无用本地日志步骤前,请先查看以下注意事项:

  • Binlog文件记录实例的事务信息,是RDS实例高可用和可恢复性的基础,建议不要关闭。可以通过一键上传Binlog功能上传到OSS来释放磁盘空间或者修改本地Binlog设置,详情请参见本地Binlog设置
  • 清理Binlog文件有延迟,请耐心等待实例日志空间使用量的下降。
  • 一键上传Binlog会在后台异步提交清理任务,且清理任务会将已写入的Binlog上传到OSS(非用户购买的OSS)上,然后再从实例空间中删除Binlog文件,当前正在被写入的Binlog文件由于未完成写入,是不可以被清理的。因此,清理过程会有一定延迟,建议您单击一键上传Binlog后耐心等待一定时间,请勿多次单击该按钮,可以在基本信息页中查看磁盘空间是否减小。
  • 由于DML等操作(比如涉及大字段的DML操作)会快速生成Binlog,可能会导致上传Binlog文件到备份空间并且从实例空间中删除的处理速度跟不上实例生成Binlog文件的速度,在这种情况下,建议您考虑升级磁盘空间,并且排查Binlog快速生成的原因。

一键上传Binlog

  1. 登录RDS管理控制台,在页面左上角,选择实例所在地域。
  2. 找到目标实例,单击实例ID。
  3. 在左侧导航栏中单击备份恢复
  4. 在右上角单击一键上传Binlog,在弹出的对话框中单击确定
    说明
    • 一键上传Binlog功能会有一定延迟,请耐心等待15分钟左右。
    • 本操作会删除除最新的两个本地日志文件外的所有日志文件,如果只有两个日志文件,本操作不会删除任何文件。
    • 基础版实例不支持一键上传Binlog功能,建议您参见修改本地日志(Binlog)文件设置删除本地日志。

修改本地日志(Binlog)文件设置

  1. 登录RDS管理控制台,在页面左上角,选择实例所在地域。
  2. 找到目标实例,单击实例ID。
  3. 在左侧导航栏中单击备份恢复
  4. 选择本地日志设置页签,单击本地日志保留策略,根据您的实际情况,设置对应的值。
    说明:保留时长若设置为0,表示本地不保存Binlog日志,直接上传至OSS。

后续维护

若锁定问题已解决,为了预防再次出现锁定问题,建议设置在资源不足时,实例自动扩容存储空间的功能,详情请参见设置存储空间自动扩容

更多信息

更多实例空间满的解决方法请参见如下链接:

适用于

  • 云数据库RDS MySQL版

如果您的问题仍未解决,您可以在阿里云社区提交工单联系阿里云技术支持。

FAQ

关于此文档暂时还没有FAQ
返回
顶部