还有什么更好的方法可以从大型数据库(可能超过 25GB)从巴西圣保罗的 RDS MySQL 5.7 快速迁移到弗吉尼亚州北部的 RDS Aurora转储)。
但是我不能让数据库停止超过 3 小时( 或者可能更少),因为这个数据库是一家公司的产品。
提前非常感谢您。
圣保罗地区没有 MySQL Aurora(进行迁移的原因之一,此外成本是北弗吉尼亚州的两倍)
RDS 只能在必要时在迁移期间公开访问。
我将无法使用多可用区。使用“AWS Database Migration Service”是否可行?
我还必须迁移链接到该数据库的实例 EC2 和 S3(主要是 EC2)以避免延迟问题。
迁移后,圣保罗地区的所有服务将停止。
正如我之前所说,主要原因是长期和短期的成本降低(将考虑使用预留实例)和性能,以及实例 EC2 以避免延迟和不稳定的问题。
最佳答案
您在尝试移动数据库并同时将引擎从 MySQL 更改为 Aurora 时犯了一个错误。
现在迁移MySQL 5.7系统,稍后转换为Aurora。您不需要自找麻烦,同时做这两件事就是这样。
不可能“快速”远距离迁移主数据库,但可以使设置时间量变得无关紧要,并且激活时间接近于零。
不要尝试进行复制,而是创建数据的 RDS 跨区域副本,并在最后一刻将该副本提升为主副本。
Creating a Read Replica in a Different AWS Region
With Amazon RDS, you can create a MariaDB, MySQL, or PostgreSQL Read Replica in a different AWS Region than the source DB instance. You create a Read Replica to do the following:
Improve your disaster recovery capabilities.
Scale read operations into an AWS Region closer to your users.
Make it easier to migrate from a data center in one AWS Region to a data center in another AWS Region.
https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ReadRepl.html#USER_ReadRepl.XRgn
RDS 复制数据和设置副本需要多长时间并不重要,因为一旦复制,它就会开始复制自该过程开始以来主服务器上更改的所有内容。
一旦您确认一切正确且一致,那么您promote a replica 。它永久且不可撤销地与其原始上游实例分离,并变得可写。这是您要做的最后一件事,在应用程序开始写入这个新数据库后,您在圣保罗的原始系统就已过时,因为对其所做的更改将不再复制到新系统 - 它们将被永久隔离。
这种安排不需要您建立任何网络或公开访问数据库。
而且,您可以创建和销毁多个副本来测试此过程,而不会影响生产。
关于mysql - 使用MySQL 5.7 for MySQL Aurora实现RDS在不同区域之间的快速迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55890992/