重新启动AWS RDS Aurora主/写也重新启动了读者?

时间:2018-05-09 05:59:13

标签: amazon-web-services amazon-rds amazon-rds-aurora

我试图将AWS RDS Aurora评估为我们本地MySQL数据库的未来替代品,但我注意到了一些奇怪的行为。

我有一个带有DB master(writer)和副本(reader)的基本集群。我的想法是将阅读器用作始终可用的数据源,即使编写器不可用。但是,当我重新启动主设备时,它也会关闭阅读器,使设置毫无价值。

查看阅读器副本日志,当它注意到作者已关闭时会发生这种情况:

enter image description here

有没有人知道如果有一个Aurora读取入口点,即使作者离线或忙碌很短时间也不会失败?

或者写/读"不同步"无论群集大小如何,总是取下读者入口点?

1 个答案:

答案 0 :(得分:0)

在重新启动主服务器期间使副本保持可用的唯一方法是使用传统的MySQL复制来创建异步副本 - Aurora确实支持。

Aurora replication is very different比MySQL(或Galera)复制。丢失主服务器必然会触发集群的重组,因为单个实例没有自己的数据副本,它们共享6路复制存储卷 - 这是复制可以保留的方式在10-20毫秒的时间范围内。实际从主服务器复制的是事务日志LSN。更换主服务器需要升级一个副本,验证接管后磁盘上的数据结构是否干净,然后所有其他副本都开始跟随它。

  

如果数据库群集包含一个或多个Aurora副本,则会在失败事件期间将Aurora副本提升为主实例。故障事件会导致短暂中断,在此期间读取和写入操作会因异常而失败。

     

https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/Aurora.Managing.html#Aurora.Managing.FaultTolerance

当Aurora副本停止查看来自主服务器的更新时,无论实际故障位于何处 - 无论是实际主服务器还是基础结构中的其他位置 - 副本都停止提供查询,因为最好的情况是它不再能访问权威数据。

在可能的情况下,zero-downtime patching似乎可以避免在升级期间重新启动主服务器。除了升级之外,不需要重新启动主服务器。