跨区域复制 Aurora 集群以实现故障回退的更快种子传输的最佳实践

0

【以下的问题经过翻译处理】 客户目前在一个Aurora-MySQL区域集群中拥有多个数据库。客户正在计划DR策略。他们有两个选择:1\基于Binlog a.k.a逻辑复制的Aurora-MySQL区域-跨区域副本 2\ Aurora-MySQL全球-物理复制。在这两个选项中,哪种策略最佳以减少在回溯(而不是故障转移)情况下播种副本集所需的时间?客户进行了实验,并发现在没有改变当前数据库到集群比例的情况下,使用Aurora Regional +逻辑复制需要3.75小时,而使用Aurora Global建立一个新的副本集需要3个小时。我问了一下,通常回溯没有SLA要求,这主要与故障转移有关,那么为什么客户有兴趣缩短持续时间呢?但是,如果没有其他选择,我将强调这一点。但是在此期间,我想了解您对这些选项和考虑因素的看法:

选项1:拆分集群以保持每个集群1个数据库的比例。这样可以减小整体集群大小,将副本引入另一个区域的速度将更快,而不管他们选择Aurora Regional还是Aurora Global。

选项2:是否分裂无关紧要。我怀疑这一点。

如果选择1是正确的选择,则下一个问题是将DB拆分为其各自的集群的机制:

选项 A:对现有的多数据库集群进行快照 > 还原到 Aurora 区域性或全球性,并删除除一个之外的所有数据库。对于您在该集群中拥有的每个数据库都执行此操作。这种做法能减小集群的总体大小吗?我认为不会,因为 Aurora 存储不会因为删除的表或数据库空间而缩小,它可能会在某些条件下重新使用这些空间。因此,当必须在新区域创建副本集群时,它将占用与删除数据库之前相同的存储空间或内容。这是真的吗?如果是真的,Aurora 的区域性和全球性提供是否会有不同行为?

选项 B:Aurora 备份和还原的粒度是集群级别,因此您可以单独备份一个数据库并将其还原到新的集群。使用一些机制 - 如 DMS 或其他方法,来逐个迁移数据库的内容到新集群。对我来说不太清楚,所以我需要更多关于 AWS 在这方面的建议的清晰度。

profile picture
专家
已提问 8 个月前13 查看次数
1 回答
0

【以下的回答经过翻译处理】 一般来说,当我们在RDS数据库上创建读取副本时,它将对主/写入数据库实例进行快照并在新的数据库实例上进行恢复操作。在创建Aurora MySQL跨区域副本时,备份数据库将会在辅助区域上进行恢复操作。在Aurora中,数据库恢复过程是并行的异步操作。创建读取副本的时间估计基于数据库大小,但由于来自S3的并行恢复,恢复过程比RDS MySQL快得多。

删除表或数据库并不能帮助你优化Aurora跨区域副本的创建过程,因为它是物理备份恢复过程,即将所有分配的块/页面映射到Aurora数据库实例,包括分配的空白页面/块。

profile picture
专家
已回答 8 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则