我在将数据库恢复到RDS实例时遇到问题。我们有大约12,000个数据库,一个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.media,我们想要恢复来测试我们的日常备份,在恢复之后,我混淆了所有用户数据并从中创建统计数据,所以它应该是最新的。
实现这一目标的最佳解决方案是什么?
发布于 2017-09-13 16:20:58
如果内存不足,请将数据库大小从t2中增大到更大的值。
试一下r3,这是15.25GiB,而t2Medium是4GiB
发布于 2017-09-15 15:54:40
像我一样,您最有可能遇到最近的RDS bug https://forums.aws.amazon.com/thread.jspa?threadID=251866&tstart=0
https://stackoverflow.com/questions/46185269
复制相似问题