AWS MySql RDS:"来自存储引擎的错误28"

时间:2016-07-07 19:33:26

标签: mysql amazon-web-services grails amazon-ec2 amazon-rds

我正在开发一个相对较小的应用程序,为大约1,500名用户提供服务,并在大约300兆的Mysql数据库上运行。整个系统在AWS上运行,在Tomcat 8上运行Grails应用程序的单个专用EC2节点和一个专用的Mysql RDS实例。该系统已在生产中运行了大约三年,没有数据库问题。两个最大的表包含大约40k记录。该应用程序是使用Grails和Java 1.7构建的。

昨天我们的应用程序开始抛出以下异常,其基本错误消息为:

  

"来自存储引擎的错误28"

RDS管理员Web控制台提供的日志为空。

除了大多数消息指出磁盘空间不足外,谷歌搜索还没有发现任何有助于我们解决问题的有希望的潜在客户。鉴于大多数搜索结果都是指磁盘空间。作为软件开发人员,而不是具有重要Mysql专业知识的DBA,我们增加了Mysql RDS实例的存储空间。不幸的是,今天我们的应用程序仍在零星地抛出相同的异常。创建了我们的Mysql DRS实例,其中有15个空间 - 这是我们的应用程序使用的几个数量级的额外空间 - 我们很遗憾这个问题的根本原因是什么。我们的猜测是,我们正在遇到一些开箱即用的Mysql限制,但不知道它可能是什么或如何解决它。实际上,我们托管RDS的全部原因是为了避免这类问题。

做一些谷歌搜索,这似乎是一个有点常见的Mysql错误,但没有任何具体的痕迹供我们遵循。大多数建议都是关于检查文件系统或" inode"空间。鉴于这是AWS上的托管Mysql RDS实例,我不确定是否或如何检查这些事情。查看RDS实例的CloudWatch,我可以看到CPU处于空闲状态,并且该实例大大低于15 gig存储限制。

有没有人对我们进行调查?

鉴于我们不熟悉RDS,您能否请我们指出任何文档,或者 - 甚至更好 - 建议我们可以在RDS控制台中调整哪些设置 - 以帮助防止出现此错误?理想情况下,我们转向RDS认为,如果这是一个mysql大小调整或扩展问题,转移到RDS将解决问题。作为最后的手段,今天早上我们删除了大约20k排不必要的数据。不幸的是,问题仍然存在,我们继续遇到这个问题。

几个问题:

  1. 我们可以调整任何RDS设置以避免此问题吗?
  2. 可以通过迁移到更大的RDS实例来解决这个问题吗,可能还有更多内存吗?
  3. 如果我们搬到Aurora,我们会遇到这个问题吗?

1 个答案:

答案 0 :(得分:0)

从您的评论中,这绝对是存储问题的一个低点。因为13 Gb的存储空间非常少。您可以在仪表板中查看免费的可用存储空间。在监控下的“存储”指标中查看此屏幕截图,如果它超出红线,您将开始获得错误28.您将不得不增加RDS实例的存储空间或释放一些空间。我建议增加存储空间以避免将来出现此问题。

enter image description here