首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SQS移动数千个数据库是个好主意吗?

使用SQS移动数千个数据库是个好主意吗?
EN

Stack Overflow用户
提问于 2018-07-05 22:48:16
回答 1查看 247关注 0票数 0

我们希望从在MySQL实例上使用EC2转移到RDS和安装复制。好像是个没脑子的人,对吧?嗯,我有30,000个数据库要移动(不要问)。虽然建立复制似乎很好,但将30,000个数据库放入RDS的过程是一个巨大的痛苦;它需要花费很长时间,而且几乎总是会发生一些事情。

每晚的备份大约需要两个小时。我最终得到了一个多GB的SQL转储文件。当我试图恢复它时,几乎总是出错: RDS实例内存不够大,并且崩溃了,本地主机耗尽了交换空间,网络连接变得支离破碎。管它呢!我确实让它恢复了一次;IIRC花费了23个小时(30K的MySQL DB是一吨的文件IO)。

所以今天,我决定用我的翻盖机。它在两个小时内为数据库生成了30,000个模式文件,然后突然,源MySQL根据top进入了不间断的睡眠,我失去了我的客户端连接,strace显示它还在试图读取文件,mydumper进程崩溃了。我重新启动了整个过程,并检查了状态;mysqld出于某种原因重新启动了2.5小时。

下面是我的想法,我想要您的输入:我编写了两个python脚本: firstScript.py将在单个数据库上运行mydumper,更新状态表,打包SQL,将其放到AWS队列中,重复到找不到更多的数据库为止;secondScript.py从队列中读取、运行SQL并更新status表,重复直到找不到更多的消息。

我觉得这能行。你是?我不确定的主要问题是:我可以通过Ctrl运行多个secondScript.py -将它们放到后台吗?

还是有人有更好的移动30,000个数据库的方法?

EN

回答 1

Stack Overflow用户

发布于 2018-07-05 23:01:14

我不会使用mysqldump或mydumper来进行逻辑转储。加载结果的SQL格式转储需要太长时间。

相反,使用Percona XtraBackup对EC2实例进行物理备份,并将备份上载到S3。然后从S3还原到RDS实例,在RDS实例上设置复制到EC2实例,并让它赶上。

2017年11月宣布了将物理MySQL备份恢复到RDS的功能。

另请参阅:

您应该使用一个比30k数据库更小的实例来尝试它,这样您就可以对这些步骤进行一些练习。请参阅我上面链接到的Percona博客中的步骤。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51200859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档