关于 AWS 的 RDS Multi AZ 的两个问题

Posted

技术标签:

【中文标题】关于 AWS 的 RDS Multi AZ 的两个问题【英文标题】:Two Questions Regarding AWS' RDS Multi AZ 【发布时间】:2011-07-29 19:10:23 【问题描述】:

    我了解从单可用区升级到多可用区 rds 时,会发生“短暂的 i/o 冻结”。这到底是什么意思?

    当对多可用区部署进行升级(例如从小到大)时,生产数据库是否会受到影响?是否能够使用备份数据库,然后进行故障转移?

【问题讨论】:

【参考方案1】:

您的问题的答案已记录下来:

    当您选择从单 AZ 移动到多 AZ 时,会发生短暂的 I/O 冻结。这意味着在一段时间内将无法访问数据库。不会对数据库执行读、写操作。大多数情况下,此过程的持续时间约为 3-4 分钟。

    是的,当您调整计算大小(从小到大)时,生产数据库会受到影响。执行调整大小操作的最佳方法是在计划的维护窗口期间。如果选择 Apply Immediately 选项,则有时无法访问数据库(是时候将控制权切换到备份服务器了)。

问候, 三吉丹吉

【讨论】:

真的吗?为什么RDS不能使用standby进行resize操作? (问题 #2) @Nick :当执行 Resize 操作时,首先发生在 Standby。然后,发生故障转移,由 Standby 负责并提升为主。然后,调整大小发生在主节点上。【参考方案2】:

从单可用区转换到多可用区时的停机时间本质上是新实例启动并完全发挥作用所需的时间,如 sanket 所说,可能需要几分钟。

扩展多可用区部署首先扩展从属实例,然后执行故障转移。停机时间是进行实际故障转移所需的时间 - 通常接近一分钟。

通过添加额外的只读副本(源自备用数据库)来扩展多可用区部署,这不会导致中断。请记住,添加只读副本会创建一个最终一致的系统,这可能是理想的,也可能不是理想的。

您应该在所有多可用区实例中使用相同的实例类型也毫无价值,否则不平衡可能会导致副本延迟。

您可能已经意识到,最好从一开始就使用多可用区配置。它使扩展和扩展变得更加容易,并且停机时间更少。

【讨论】:

根据引擎的不同,slave 应该拥有比 master 更强大的实例。在 mysql 上,master 可以执行并发写入。从服务器在复制时无法执行并发写入。

以上是关于关于 AWS 的 RDS Multi AZ 的两个问题的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Multi-AZ 将 Node Sequelize 连接到 Amazon RDS MySQL

AWS RDS Mysql 跨账号迁移

如果AWS RDS恢复发生,如何重新连接

我们可以在同一个AZ中拥有两个AWS NAT实例

具有 Cloud Formation 和 AZ 问题的 RDS

关于基于AWS-Cli的方式对RDS资源批量添加tag的方法