问题描述
阿里云云数据库RDS MySQL实例ibdata1系统文件占满磁盘空间,从而导致实例的运行状态为“锁定中”。
问题原因
MySQL实例由于长时间不结束的查询导致ibdata1文件过大且无法收缩,从而导致实例空间满。为避免数据丢失,RDS会对实例进行自动锁定,磁盘锁定之后,将无法进行写入操作。
解决方案
阿里云提醒您:
- 如果您对实例或数据有修改、变更等风险操作,务必注意实例的容灾、容错能力,确保数据安全。
- 如果您对实例(包括但不限于ECS、RDS)等进行配置与数据修改,建议提前创建快照或开启RDS日志备份等功能。
- 如果您在阿里云平台授权或者提交过登录账号、密码等安全信息,建议您及时修改。
前提条件
出现问题后请先确认您的实例版本,不同版本处理方法不同:
- 对于MySQL 5.6、5.7版本的实例,升级实例存储空间后即可解锁实例,关于如何升级实例存储空间,请参见变更配置,升级后等待一段时间(5分钟左右),RDS实例会进行解锁。若实例存储空间已到最大值,请提交工单联系客服临时解锁实例,再进行后续操作。
- 对于MySQL 5.5版本的实例,请提交工单联系客服临时解锁实例,再进行后续操作。
注意事项
执行本方案前需要注意以下内容:
- 清理临时文件有延迟,请耐心等待实例已使用空间的下降。
- 由于MySQL 5.7开始采用独立的临时表空间ibtmp1,可以通过重启实例或升级磁盘空间的方式释放空间。对于MySQL5.5/5.6实例,在不升级磁盘空间的前提下,比较好的解决方法是在同地域同可用区购买相同配置的RDS实例,通过DTS工具将数据迁移到新实例中。
操作步骤
本小节主要介绍如何迁移数据:
- 同地域同可用区购买相同配置的RDS实例,具体信息请参见创建RDS for MySQL实例。
- 登录RDS管理控制台,在右上角单击迁移数据库进行迁移,具体迁移配置请参见RDS实例间的数据迁移。
后续维护
若锁定问题已解决,请参考以下步骤,预防再次出现锁定问题:
- 在资源不足时,自动扩容存储空间,详情请参见设置存储空间自动扩容。
- 避免出现执行效率很差的SQL大量执行的情况。
- 尽量在业务低峰期进行索引创建删除、表结构修改、表维护和表删除操作。
- 建议您监控和清理执行时间过长的会话或事务。
更多信息
适用于
如果您的问题仍未解决,您可以在阿里云社区提交工单联系阿里云技术支持。
FAQ
关于此文档暂时还没有FAQ