我在 RDS 和 Cloud SQL 之间犹豫的原因是我找不到如果我将 Cloud SQL 实例设置为具有只读副本的高可用性,计划维护将如何发生。在阅读了几个小时的 SO 和文档后,我相信即使在 HA 实例的情况下,您也可能因计划维护而遇到中断,因此您无法设置任何设置/策略以实现几乎 100% 的正常运行时间,这与您在 AWS RDS 中不同可以为副本设置不同的维护窗口。
我对吗?如果没有,如何实现与 AWS 中的相同?如果我是,这种行为背后的理由是什么?如果您不能保证它始终可以访问,您怎么可能将您的服务转移到 GCP?如果 HA 也有停机时间,那么它还有什么意义呢?
最佳答案
高可用性等同于多 az sql 实例。因此,当您设置此选项时,您会在一个区域中运行一个主实例,在另一个区域中运行辅助实例。因此,当维护窗口启动时,云 sql 应自动故障转移到其他可用区,并且您的应用程序/用户不应该受到影响。但是,有一些报告的事件是 Cloud SQL 导致停机(请参阅下面的编辑说明)。
另一方面,只读副本可帮助您从主实例卸载流量,它不会为您提供冗余。
没有托管 SQL 提供 100% 正常运行时间保证。 RDS Aurora 提供 99.99%。另一方面,Cloud SQL 提供 99.95% 的正常运行时间保证,这相当于停机时间不超过每日:43.2 秒。每周:5m 2.4s。每月:21m 54.9s。
我们使用 Cloud SQL,它足够可靠,维护窗口期间的升级是无缝的。
希望这可以帮助。
编辑
我自己没有亲身经历过,但根据 Stefan G 的指针,已经有 open issue使用 Google Cloud SQL 尽管 HA 在维护窗口期间导致停机:
关于google-cloud-platform - Google Cloud SQL 维护时段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59724389/