阿里云数据库MySQL系统文件导致实例空间满的解决办法
MySQL实例可能会由于长时间不结束的查询导致 ibdata1 文件过大且无法收缩,导致实例空间满,为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。
背景信息
当实例由于实例空间满自动锁定时,控制台可以在 基本信息 > 运行状态看到如下信息:
前提条件
•对于MySQL 5.6版本的实例,升级实例存储空间后即可解锁实例,关于如何升级实例配置,请参见变更配置,若实例存储空间已到最大值,请提交工单联系客服临时解锁实例,再进行后续操作。
•对于MySQL 5.5/5.7版本的实例,请提交工单联系客服临时解锁实例,再进行后续操作。
实施步骤
注意事项
•清理临时文件有延迟,请耐心等待实例已使用空间的下降。
•由于MySQL 5.7开始采用独立的临时表空间ibtmp1,可以通过重启实例的方式释放空间。对于MySQL5.5/5.6实例,在不升级磁盘空间的前提下,比较好的解决方法是在同地域同可用区购买相同配置的RDS实例,通过 DTS 工具将数据迁移到新实例中。
操作步骤
1.在同地域同可用区购买相同配置的RDS实例,具体请参见创建RDS for MySQL实例。
2.登录RDS管理控制台。
3.在右上角单击迁移数据库。
4.具体迁移配置请参见RDS实例间的数据迁移。
后续维护
•避免出现执行效率很差的SQL大量执行的情况。
•尽量在业务低峰期进行索引创建删除、表结构修改、表维护和表删除操作。
•建议您监控和清理执行时间过长的会话或事务,详情请参见 RDS MySQL 管理长时间运行查询。
我有话说: