2

通过“现实地”,我的意思是我希望,在现实世界的场景中,当从主实例到副本发生故障转移时,(现在的前)主实例由于首先导致故障转移的任何原因而无法使用,它会被处理掉。这就提出了几个问题:

  1. 如果处置了(前)主实例,则将现有副本提升为新的主实例。既然您现在有 n - 1 个副本实例,是否还会创建一个新副本?
  2. 如果我的任何假设是正确的,有没有办法在主实例实际失败并被处置的情况下进行测试,因为 RDS 中的“故障转移”功能只是将其切换到副本?
4

1 回答 1

1

我确定您在这种情况下所说的“处理掉”是什么意思。在发生故障的情况下,aurora 会启动故障转移,这是一个副本被提升到写入器和旧写入器被降级到读取器的组合。你听起来好像 Aurora 会完全删除一个有故障的实例。那永远不会发生。在某些情况下,如果主机被认为有故障,它将被完全更换。它称为主机替换,即使在这种情况下,您最终也会在恢复后拥有相同数量的实例。

现在回答您的具体问题:

1)我认为您指的是在编写器上启动主机更换的情况。在这种情况下,在很短的时间内,您将拥有 n-1 个副本,但最终将为您配置新主机。

2)我假设你想做一个失败测试,​​你想让实例完全崩溃。Aurora 确实为您提供了一堆故障注入查询,您可以使用它们来模拟故障。我用它来生成崩溃和测试故障转移时间,我没有用它来启动主机更换。您可能想探索那条路线。

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.FaultInjectionQueries.html

于 2018-10-26T21:31:23.950 回答