Article / 文章中心

阿里云数据库MySQL Binlog文件导致实例空间满的解决办法

发布时间:2020-04-21 点击数:791

问题描述

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

问题原因

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,在弹出的对话框中单击 确定。

1.登录RDS管理控制台,在页面左上角,选择实例所在地域。

2.找到目标实例,单击实例ID。

3.在左侧导航栏中单击 备份恢复。

4.选择本地日志设置页签,单击 编辑,将磁盘空间使用率设置为30%,可用空间保护设置为开启。

提示:

▫保留时长为每隔多久上传一次Binlog日志到OSS,并清理本地Binlog日志。若设置为0,表示本地不保存Binlog日志,直接上传到OSS。

▫本地Binlog空间使用率等于本地Binlog大小除实例总可用(购买)空间大小。此为循环使用空间,超出后,则从最早的Binlog开始清理,直到空间使用率低于该比例。

▫当实例总空间使用率超过80%或剩余空间不足5GB时,会强制清理Binlog。从最早的开始清理,直到总空间使用率降到80%以下且剩余空间大于5GB。

阿里云代理商 阿里云合作伙伴