亚马逊RDS内存不足

时间:2017-09-12 21:02:41

标签: mysql database bash amazon-web-services amazon-rds

我将数据库还原到RDS实例时遇到问题。我们有大约12000个数据库,一个bash脚本执行恢复,一次有10个数据库。在每500个数据库之后,脚本会休眠一分钟,然后运行以下查询:RESET QUERY CACHE;FLUSH QUERY CACHE;FLUSH TABLES;,每个数据库之后也会有一秒睡眠。

我一直遇到RDS数据库的问题,一旦InnoDB文件损坏(我想只是因为恢复尝试失败,我创建了一个新实例,它运行良好),或者我收到此错误消息:

2017-09-11 06:11:43 29836 [ERROR] /rdsdbbin/mysql/bin/mysqld: Out of memory (Needed 114240 bytes)
2017-09-11 06:11:43 29836 [ERROR] Out of memory; check if mysqld or some other process uses all available memory; if not, you may have to use 'ulimit' to allow mysqld to use more memory or you can add more swap space

错误消息后,数据库实例重新启动,恢复失败。 它说我应该增加ulimit,但我无法在Amazon RDS服务器上执行此操作,甚至无法添加更多交换空间。

数据库是db.t2.medium,我们想要恢复以测试我们的每日备份,并且在恢复之后,我对所有用户数据进行模糊处理并从中创建统计数据,因此它应该是新鲜的。

实现这一目标的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:1)

如果内存不足,请将数据库大小从t2.medium增加到更大的

尝试一个r3,它与t2.medium上的4GiB相比有15.25GiB

答案 1 :(得分:0)

像我一样,您最有可能遇到最近的RDS错误https://forums.aws.amazon.com/thread.jspa?threadID=251866&tstart=0