高可用性配置概览

本页面简要介绍了 Cloud SQL 实例的高可用性 (HA) 配置。如需配置新的高可用性实例或为现有实例启用高可用性,请参阅对实例启用和停用高可用性

HA 配置概览

高可用性配置的目的是当某个可用区或实例不可用时减少停机时间。当可用区中断服务或者实例损坏时,可能会出现这种情况。借助 HA,您的数据可以继续供客户端应用使用。

HA 配置(有时称为“集群”)可提供数据冗余。 进行了 HA 配置的 Cloud SQL 实例也称为区域实例,位于所配置区域内的主要可用区和次要可用区。在区域实例中,该配置由主实例和备用实例组成。通过将数据同步复制到每个可用区的永久性磁盘,对主实例执行的所有写入操作都会在事务被报告为已提交之前复制到两个可用区中的磁盘上。如果实例或可用区发生故障,则永久性磁盘会挂接到备用实例,并且备用实例会成为新的主实例。然后,用户会被重新路由到新的主实例。此过程称为故障切换

执行故障切换后,接管故障切换操作的实例会继续作为主实例,即使原始实例恢复在线状态后也是如此。当中断服务的可用区或实例再次可用时,原始的主实例会被销毁并重新创建。然后,该实例会成为新的备用实例。如果以后执行故障切换,则原始可用区中的原始实例会通过故障切换操作取代新实例。

如果您需要在中断服务的可用区中具有主实例,可以执行故障恢复。故障恢复会执行与故障切换相同的步骤,不过会反转方向,将流量重新路由到原始实例。要执行故障恢复,请执行启动故障切换中的过程。

针对 Cloud SQL 和 Cloud SQL 高可用性配置的区域永久性磁盘支持全面的服务等级协议 (SLA) 覆盖范围。HA 配置实例的费用是独立实例价格的两倍, 此价格包括 CPU、RAM 和存储费用。如需了解详情,请参阅价格页面

Cloud SQL 高可用性配置概览图。在下文中描述。

只读副本

读取副本不能像主实例那样具有高可用性。在可用区服务中断期间,流向该可用区中读取副本的流量会停止。当该可用区再次可用时,其中的任何读取副本都将继续从主实例进行复制。如果读取副本所在的可用区未中断服务,则当备用实例成为主实例时,这些读取副本会连接到上述备用实例。

最好将读取副本放在与主实例和备用实例不同的可用区中。例如,如果可用区 A 中有一个主实例,可用区 B 中有一个备用实例,请将读取副本放在可用区 C 中。这种做法可确保读取副本即使在主实例的可用区发生故障时也能继续运行。您还应在客户端应用中添加业务逻辑,以便在读取副本不可用时向主实例发送读取操作。

注意:备用实例不能用于读取查询。这与 Cloud SQL for MySQL 旧版高可用性配置不同。

故障切换概览

如果一个高可用性配置实例无响应,则 Cloud SQL 会自动切换为从备用实例传送数据。如需了解是否发生了故障切换,请查看操作日志的故障切换记录。

点击相应标签以了解故障切换如何影响您的实例。

正常

故障转移前运行状况良好的实例的示意图

故障转移

发生故障切换时实例的示意图

故障切换后

故障切换后的实例示意图

故障恢复

故障恢复后实例的示意图

流程

流程如下:

  • 主实例或地区发生故障。

    主实例每一秒都会向系统数据库执行写入操作以作为检测信号。如果有多次未检测到检测信号,则系统会启动故障切换。如果主实例大约 60 秒没有响应或包含主实例的可用区发生服务中断,则会发生这种情况。

  • 备用实例现在会在重新连接后传送数据。

    通过与主实例共享的静态 IP 地址,备用实例现在可从辅助地区传送数据。

要求

要使 Cloud SQL 允许故障切换,配置必须满足以下要求:

  • 主实例必须处于正常运行状态(未停止、未在进行维护,也未在执行长时间运行的 Cloud SQL 实例操作,例如备份、导入或导出操作)。
  • 辅助地区和备用实例都必须处于良好运行状态。当备用实例不响应和/或向辅助地区执行的复制操作中断时,系统会阻止故障转移操作。在 Cloud SQL 修复备用实例且辅助地区可用后,复制操作将继续进行,且 Cloud SQL 也会允许进行故障转移。

备份和恢复

必须启用自动备份和时间点恢复,才能实现高可用性(时间点恢复使用二进制日志)。

应用和实例

非 HA 实例和 HA 实例的使用方式并无区别,因此不需要以任何特别的方式配置应用。发生故障切换时,主实例和只读副本的所有现有连接都会被关闭,而重新建立与主实例的连接大约需要 2-3 分钟的时间才能完成。与副本的连接可能需要更长的时间才能完成。您的应用可以使用相同的连接字符串或 IP 地址重新连接;您无需在故障切换后更新您的应用。

如需确切了解故障切换对您的应用有何影响,请手动启动故障切换

维护停机时间

维护事件会影响采用高可用性配置的主实例,具体方式与任何其他实例都相同。您的主实例可能会短时间停机。如需详细了解维护对高可用性实例的影响,请参阅维护的工作原理。为了最大限度地减少对服务的影响,请更改维护设置以控制停机发生时间。

性能

区域永久性磁盘的性能取决于许多因素。具体来说,请查看虚拟机实例类型大小以及工作负载输入和输出。另一个指标是,具有固态硬盘 (SSD) 的区域永久性磁盘的延迟时间高于使用本地 SSD 的永久性磁盘的延迟。这意味着,如果您的工作负载不是流式工作负载且对延迟敏感,则无法达到每秒输入/输出操作次数 (IOPS) 上限,因为具有 SSD 的区域永久性磁盘的延迟时间高于使用本地 SSD 的永久性磁盘的延迟时间 - 这是因为写入两个副本所需的冗余会增加尾延迟时间。

旧版 MySQL 高可用性选项

在 2021 年第 1 季度之前,您可以选择借助采用故障切换副本的旧版过程实现 MySQL 实例的高可用性。Cloud Console 不支持旧版功能,请改用 gcloud 或 cURL 命令。 请参阅“旧版配置:创建采用高可用性配置的新实例”“旧版配置:为现有实例配置高可用性”

后续步骤