全部产品
云市场

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

问题描述

当实例由于磁盘空间满导致自动锁定,登录控制台,依次单击 基本信息 > 运行状态,查看运行状态。

实例空间满

 

问题原因

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

 

解决方案

阿里云提醒您:

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

 

前提条件

对于MySQL 5.5、5.6、5.7和8.0版本的实例,建议您提前扩容磁盘,保证磁盘使用率不超过80%,其次建议您清理无用数据。

上述两个方法都不可用或紧急情况可以提交工单临时解锁实例,再进行后续操作。

 

注意事项

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

 

一键上传Binlog

  1. 登录RDS管理控制台,在页面左上角,选择实例所在地域。
  2. 找到目标实例,单击实例ID。
  3. 在左侧导航栏中单击 备份恢复
  4. 在右上角单击 一键上传Binlog,在弹出的对话框中单击 确定

 

修改本地Binlog设置

  1. 登录RDS管理控制台,在页面左上角,选择实例所在地域。
  2. 找到目标实例,单击实例ID。
  3. 在左侧导航栏中单击 备份恢复
  4. 选择本地日志设置页签,单击 编辑,将磁盘空间使用率设置为30%,可用空间保护设置为开启。

    提示
    • 保留时长为每隔多久上传一次Binlog日志到OSS,并清理本地Binlog日志。若设置为0,表示本地不保存Binlog日志,直接上传到OSS。
    • 本地Binlog空间使用率等于本地Binlog大小除实例总可用(购买)空间大小。此为循环使用空间,超出后,则从最早的Binlog开始清理,直到空间使用率低于该比例。
    • 当实例总空间使用率超过80%或剩余空间不足5GB时,会强制清理Binlog。从最早的开始清理,直到总空间使用率降到80%以下且剩余空间大于5GB。

 

更多信息

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

 

适用于

  • 云数据库 RDS MySQL 版

 

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