Mysql 内存不足

Mysql 内存不足,mysql,database,bash,amazon-web-services,amazon-rds,Mysql,Database,Bash,Amazon Web Services,Amazon Rds,我在将数据库还原到RDS实例时遇到问题。我们有大约12000个数据库,一个bash脚本执行恢复,一次10个数据库。每500个数据库之后,脚本将休眠一分钟,并运行以下查询:RESET QUERY CACHE;刷新查询缓存;冲洗桌子,并且每个数据库之后都有一秒钟的睡眠 我不断遇到RDS数据库的问题,一旦InnoDB文件损坏(我想只是因为还原尝试失败,我创建了一个新实例,它工作正常),或者我收到以下错误消息: 2017-09-11 06:11:43 29836 [ERROR] /rdsdbbin/my

我在将数据库还原到RDS实例时遇到问题。我们有大约12000个数据库,一个bash脚本执行恢复,一次10个数据库。每500个数据库之后,脚本将休眠一分钟,并运行以下查询:
RESET QUERY CACHE;刷新查询缓存;冲洗桌子,并且每个数据库之后都有一秒钟的睡眠

我不断遇到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
错误消息发出后,DB实例重新启动,恢复失败。 它说我应该增加ulimit,但我不能在AmazonRDS服务器上这样做,甚至不能添加更多交换空间

数据库是db.t2.medium,我们希望恢复以测试我们的日常备份,在恢复之后,我会混淆所有用户数据并从中创建统计数据,因此它应该是新的


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

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


试试r3,与t2上的4Gb相比,它有15.25GiB。像我一样的中型

您最有可能遇到最近的RDS错误

每个数据库有多大?除了恢复之外,您还在使用它们吗?对于这样一个小的服务器,12000个数据库是大量的数据库,假设每个数据库只有少量的表。最明智的建议是从更大的规模开始,然后向下扩展实例。如果您坚持尝试使用小型计算机,请将参数组中的
innodb_buffer_pool_size
公式从
{DBInstanceClassMemory*3/4}
向下更改为
{DBInstanceClassMemory*2/4}
,以通过减小缓冲池来释放一些内存,这不是最佳选择,但是您需要更多的可用内存,这是在不进行扩展的情况下获得它的唯一方法。此外,请创建一个包含
--无数据的转储文件,然后尝试仅恢复模式,然后进行完全备份。
FLUSH
语句是不必要的。