全部产品

RDS MySQL实例空间满后自动锁定的排查方法

KB: 51682

 · 

更新时间:2021-05-31 09:27

问题描述

RDS MySQL实例可能会由于SQL语句、外部攻击等原因导致实例空间满,为避免数据丢失,实例会自动锁定,且无法进行写入操作。

Dingtalk_20201021154540.jpg

问题原因

造成实例空间满的主要原因有以下四种:

  • 数据文件占用高。
  • Binlog文件占用高。
    在没有正确设置日志备份策略时,可能会由于大事务SQL导致Binlog日志暴增。
  • 临时文件占用高。
    通常导致临时文件占用高的原因是由于查询语句的排序、分组、关联表产生的临时表文件,或者大事务未提交前产生的Binlog缓存文件。
  • 系统文件占用高。
    系统文件涉及到ibdata1系统表的空间文件和ib_logfile0、ib_logfile1日志文件。InnoDB引擎表由于支持多版本并发控制(MVCC),因此会将查询所需的Undo信息保存在ibdata1文件中。如果存在对一个InnoDB表长时间不结束的查询,而且在查询过程中表有大量的数据变化,则会生成大量的Undo信息,导致ibdata1文件体积增加。
    说明:由于MySQL内部机制的限制,ibdata1文件目前不支持收缩。ib_logfile0和ib_logfile1日志文件保存InnoDB引擎表的事务日志信息,其文件大小体积固定,不可以改变。

解决方案

  1. 登录RDS管理控制台的实例列表页面,在上方选择地域,然后单击目标实例ID。
  2. 在左侧导航栏中单击监控与报警。查看占用存储空间的主要文件类型。
  3. 选择对应的解决方法:

相关文档

适用于

  • 云数据库RDS

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