谷歌云SQL维护窗口

4
我在RDS和Cloud SQL之间犹豫的原因是我无法找到设置Cloud SQL实例为高可用性并具有读取副本的情况下如何进行定期维护。经过阅读SO和文档几个小时后,我认为即使在HA实例的情况下,由于定期维护,仍可能出现停机情况,因此您不能设置任何设置/策略以实现几乎100%的正常运行时间,这与AWS RDS不同,在AWS RDS中,您可以为副本设置不同的维护窗口。
是否正确?如果不是,请问如何实现与AWS相同的设置?如果正确,这种行为背后的原理是什么?如果HA也存在停机时间,那么您应该如何将服务迁移到GCP?如果HA也存在停机时间,那是什么意义呢?

2
本文档涵盖了MySQL的维护窗口:https://cloud.google.com/sql/docs/mysql/maintenance。每个数据库都有类似的文档。编辑您的问题以指定事件类型。一些事件需要停机时间,而另一些则不需要。 - John Hanley
2
设计您的服务以处理停机时间。没有任何服务可以提供100%的正常运行时间。无论您花费多少,总会有一个小窗口。 - John Hanley
3个回答

2

读取副本既不提供高可用性也不支持维护窗口。这在Cloud SQL FAQs中有解释,以及其他信息。

公共问题跟踪器中有关于此的特性请求,此处此处 - 您可以通过单击 星号 按钮表达您的兴趣。

当计划维护发生时,首先在读取副本上执行操作,然后在主实例上执行。Cloud SQL会尝试保持其中一个始终运行,但这不能保证,可能会更改,您不应依赖它。

如果可用性对您非常重要,则最好使用Cloud Spanner,它提供了99.999%的可用性SLA。


1

编辑

我个人没有经历过这种情况,但根据Stefan G的指示,Google Cloud SQL存在开放问题,尽管具有高可用性,在维护窗口期间仍会导致停机时间:


高可用性等同于多AZ SQL实例。当您设置此选项时,您将在一个区域中运行主实例,在另一个区域中运行辅助实例。因此,当维护窗口启动时,云SQL应自动故障转移至其他可用性区域,您的应用程序/用户不应受影响。但是,有一些报告称Cloud SQL导致了停机(请参见下面的编辑说明)。
另一方面,只读副本可以帮助您从主实例卸载流量,但不提供冗余。
没有托管的SQL提供100%的正常运行时间保证。RDS Aurora提供99.99%。另一方面,Cloud SQL提供99.95%的正常运行时间保证,这相当于每日停机时间不超过43.2秒,每周停机时间不超过5分2.4秒,每月停机时间不超过21分54.9秒。
我们使用Cloud SQL,它足够可靠,并且在维护窗口期间进行的升级是无缝的。
希望这可以帮到您。

5
只是想澄清一下,恐怕被接受的答案不正确。至少第一段不正确。似乎您认为在维护窗口期间会晋升只读副本,但实际上并非如此。故障转移发生在实例不健康时,而维护则在指定或未指定的时间窗口期间进行。在@Maxim发布的第二个“here”链接中,您可以阅读并了解即使具有HA,维护也可能会中断服务。由于您接受了Parth Mehta的消息,我认为这是您对Cloud SQL行为的理解,但Maxim的答案是正确的。 - Stefan G.
1
总之:即使您拥有HA,维护也可能会发生并短暂地中断您的服务。在此链接1中,人们正在专门讨论这个问题。希望这可以帮助您。 - Stefan G.
1
@stefan 这很有趣,我们已经使用Cloud SQL 9个月了,经历了至少2次(可能是3次)重大维护,但没有造成停机时间。但我会相应地更新我的答案,以涵盖问题跟踪器中提到的情况,这样人们在考虑CloudSQL之前可以尽职调查。 - Parth Mehta
2
我想澄清的是,这种情况可能发生,而不是一定会发生。他最担心的是任何停机时间,我认为让他知道谷歌正在解决这个问题是公平的。感谢您的编辑,Parth。 - Stefan G.
1
谢谢您对此发表评论,它很有帮助。 - Parth Mehta
显示剩余5条评论

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接