Cloud SQL Postgres故障转移和CPU /内存升级过程中预期的不可用性?

坎南冈丹

我对AWS RDS MySQL多可用区(HA)有一些经验。我正在寻找一个新项目的GCP Cloud SQL Postgres HA。

我正在尝试确定某些维护操作的工作方式,但无法从Cloud SQL文档中弄清楚。

  1. 故障转移会导致多少不可用性?
  2. CPU /内存升级会导致多少不可用?
  3. 故障转移后,最终“故障回复”到原始主实例是否重要?还是可以让它无限期地在备用实例上运行?Cloud SQL HA故障转移图使这两个实例看起来并不完全对称。)

仅供参考,AWS RDS的答案

故障转移:通常在不到70秒的不可用时间内,我的应用程序才能再次发出查询。

  • 这用于计划的故障转移。(对于计划外的故障转移,RDS可能需要更长的时间才能检测到主实例在实际启动故障转移之前无响应。)
  • DNS可能会导致很多故障转移延迟。使用AWS RDS代理服务可能会减少时间(他们要求减少约80%)。云SQL HA故障切换图显示两个实例共享一个虚拟IP,这可能意味着没有DNS的滞后呢?

CPU /内存升级:我认为AWS可以通过一次不值得的故障转移来完成此任务。它会升级备用实例(不可用),执行故障转移,然后再升级另一个实例。

在RDS上,我认为属于HA设置的两个实例是对称的。因此,如果您将故障转移到备用数据库,则可以采用这种方式。就RDS而言,没有必要将故障转移回到原始状态。

唐纳德·库沙罗(Donnald Cucharo)

要回答以下问题:

  1. 正如您提到的,不可用性的持续时间会有所不同,具体取决于它是计划的(手动)故障转移还是计划外的故障转移。最好进行测试并手动启动故障转移,以便可以看到实例对其进行响应的时间,通常需要一分钟左右的时间。当涉及到计划外的故障转移时,文档中几乎涵盖了发生故障转移时,与主实例和只读副本的所有现有连接都将关闭,并且重建连接大约需要2-3分钟。

  2. 要解决此问题,您需要了解实例要求以允许故障转移:

主实例必须处于正常运行状态(未停止,正在进行维护或执行长时间运行的Cloud SQL实例操作,例如备份,导入或导出操作)。

这意味着故障升级在升级实例时不起作用,更改硬件规格(CPU /内存)将导致停机,因此您在进行这些更改时应提前计划。

  1. 要了解故障回复的重要性,以下是此链接的摘录

高可用性解决方案将数据连续复制到远程站点或云。如果主系统发生故障,则可以启动远程辅助系统,并重新路由用户。此过程通常称为“故障转移”,它将停机时间减少到几秒钟或几分钟。

但是,故障转移不是永久状态。主服务器启动并运行后,必须还原数据和应用程序,以便可以恢复正常操作。此过程称为故障回复,从灾难恢复测试的角度来看,这一过程非常重要。原因如下:涉及故障回复时,并非所有复制技术都是平等创建的。在某些情况下,故障转移到生产服务器可能会非常缓慢。

更新1: Cloud SQL上的HA将为您的备用实例提供与主实例相似的规格,这就是为什么您要向非HA实例支付两倍价格的原因。同样,故障回复的重要性不仅限于任何云提供商。确保所有操作返回到主实例而不是仅将其保留在备用实例上只是一个好习惯。在这种情况下,必须进行故障恢复(具体来说是在Cloud SQL上),以确保中断后一切恢复正常。

更新2:如果不进行故障回复,则可能会发生以下情况:当备用实例运行所在的区域发生故障时(您无法控制备用实例来自哪个区域),您将无法进行故障转移,因为操作将被阻止。(请参阅文档)

不幸的是,几乎没有其他选择,因为每当您更换硬件时都需要停机。该过程将要求实例重新启动。这是查看所需时间的链接

其他资源:https : //severalnines.com/database-blog/achieving-mysql-failover-failback-google-cloud-platform-gcp

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从Go中的Cloud Function连接到Cloud-SQL?

Google APP Engine和Cloud sql ::无法在Google Cloud sql(我的SQL)中连接Spring Boot应用

如何测试服务不可用性和抛出的HTTP错误

如何更改Google Cloud SQL故障转移副本的机器类型

Cloud SQL第二代-无法创建故障转移

Google Cloud SQL高可用性真的在提高可靠性吗?

如何使用Cloud Functions中的Cloud DataStore或Cloud SQL for Firebase?

Cloud SQL代理和权限不足

GCP Cloud SQL中的PgRouting

是否为Azure SQL数据库配置灾难恢复和自动故障转移?

递归过程中@ vars,#tables和##表的可用性

Postgres的K8s TLS秘密| GKE和Google Cloud SQL Postgres

AppEngine和Cloud SQL连接错误

如何计算Google Cloud SQL所需的CPU,内存和存储的数量

使Azure SQL数据库在故障转移组中脱机

在Cloud Function中使用Cloud SQL(Postgres)

有没有办法获取Google Cloud SQL故障转移副本实例的详细信息?

我可以从Cloud Run连接到Compute Engine中托管的Postgres实例吗?(不是Cloud SQL)

Google Cloud Spanner和Cloud SQL有什么区别?

Google大查询和Cloud SQL

使用Cloud Proxy的Google Cloud Composer和MS SQL

Google Cloud SQL故障转移无法启动

以高可用性处理故障转移?

Cloud Foundry 中的 JDK 可用性

SQL Server 可用性组 - 用于服务器故障转移和站点故障转移

Google Cloud SQL Admin API 与存储过程和函数一起备份

终止 Cloud SQL 导入过程

日志中的 Artemis 主从故障转移和同步错误消息

Postgres 13 和故障转移槽