Cloud SQL 实例维护概览

本页面介绍了 Cloud SQL 实例的维护方式以及如何控制维护的时间。如需开始进行维护,请参阅查找和设置维护期

什么是维护?

Cloud SQL 实例需要不定期更新,以修复 Bug、防范安全漏洞、执行升级。应用更新后,Cloud SQL 会重启实例,这可能会导致服务中断。在维护期间,HA 主实例不会故障转移到备用实例。

有关正式版更新的详细信息,请参阅版本说明

什么是维护期?

维护期是指 Cloud SQL 安排执行此类维护操作的时间段。

如果您希望接收有关即将进行的维护更新的通知,则必须执行以下两项操作:

如果您没有指定首选时段,则中断性更新可能会随时发生,但通常每几个月才发生一次。

对时间敏感的维护

虽然大多数维护操作都会遵循您定义的维护期,但关键服务更新(例如对时间敏感的漏洞补丁程序)可能不会遵循。这些更新会快速发布,而 Cloud SQL 会根据其服务等级协议 (SLA) 将相应的时间计为停机时间。

如何设置实例的首选维护期?

您可以安排在一周中选定一天的特定时间进行维护,还可以安排实例的更新顺序。您可以使用首选时段更新顺序设置在实例上配置这些选项。

为实例配置首选时段后,Cloud SQL 不会在该时段以外启动该实例的更新操作。维护操作每几个月执行一次,通常会在几分钟内完成。维护操作绝不会在首选时段以外开始执行,但不一定在首选时段内完成。首选时段是采用世界协调时间 (UTC) 定义的。因此,首选时段不会应用夏令时的时间调整。您必须重新配置首选时段以适应当地的时间变化。

配置更新顺序时,它会设置可能导致停机时间的实例更新的相对时间。时间选项有任意较早较晚。所有实例都会收到完全相同的更新。不同之处在于,较晚实例会在较早实例更新完成一周后收到更新。通过较早在单个实例上接收更新,您可以在更新其他实例之前,使用更新测试您的应用。

更新的相对时间在项目或地区之间不会得到遵守。如果您的实例在一个项目或位置中采用较晚的时间设置,而在其他项目或其他位置(例如其他地区)中采用较早的时间设置,则 Cloud SQL 不会尝试首先更新具有较早时间设置的实例。

如果您未设置更新顺序,则 Cloud SQL 会选择实例更新时间(如适用,会选在首选时段内)。

更新顺序设置不影响 Cloud SQL 应用于实例的软件版本。

如需现在为维护设置首选时段,请参阅为实例设置首选维护期

维护对读取副本和故障转移实例有何影响?

读取副本会关停以进行维护更新。无法保证更新何时发生,更新可能会与主实例更新重叠或非常接近。故障转移实例会关停进行维护更新。它们会在主实例之前收到维护更新。您不能直接对故障转移实例设置维护期,因为该实例与主实例的维护期相同。

是否有关于处理维护停机的设计建议?

我们建议您在设计应用时,使之能够应对实例在短期内无法访问的情况,比如在维护停机期间。如需在维护停机期间测试应用的行为,请重启实例。一般而言,我们建议您仅使用短期有效的连接,同时利用指数退避算法来重试被拒的连接。

如需了解更多指导信息,请参阅如何管理连接?

MySQL 实例因维护而被关停的问题

mysqld 最多只有 1 分钟时间来关停 MySQL 实例。如果在该时间段内关停未完成,系统会强制停止 mysqld 进程。这会导致实例的启动时间延长,因为 InnoDB 存储引擎需在服务器开始处理查询之前执行崩溃恢复。崩溃恢复的完成时间取决于数据库的大小;数据库越大,所需的恢复时间越长。

如何获得维护通知?

默认情况下,系统不会发送维护通知。如果您希望接收维护通知,则需要在 Cloud Console 通信页面中设置 Cloud SQL 维护期 (Cloud SQL Maintenance Window) 选项,然后在电子邮件下选择开启。您只能通过电子邮件接收通知。您还必须先选择一个维护期,然后才能接收通知。

维护通知是在项目级(而不是在实例上)设置的。 电子邮件通知会发送到与您的 Google 帐号关联的电子邮件地址。您不能配置自定义电子邮件别名(例如团队电子邮件别名)。

如需接收维护通知,请参阅选择接收维护通知

在哪里可以找到关于即将进行的维护?

如果您注册通过电子邮件接收维护通知,则系统会在安排维护前一周向您的电子邮件地址发送通知。如果您要为通知设置电子邮件过滤条件,请注意此类通知的电子邮件标题为“您的 Cloud SQL 实例 instancename 即将进行维护”。

您还可以通过控制台中的多个位置查看实例是否已安排进行维护更新:

  • 实例列表的维护列中。如果已安排维护,您会看到安排开始进行维护的日期和时间。您可以使用维护一词来过滤实例列表,以查找所有已安排维护的实例。只有在项目中的一个或多个实例已安排维护时,系统才会显示维护列。如果没有安排维护,则该列会隐藏起来。
  • 实例详情页面的维护窗格中。如果已安排维护,则您会在即将开始下方看到安排开始进行维护的日期和时间。
  • 在 Cloud Console 的活动页面上,您可以查看已安排进行维护的实例的列表。如果已安排维护,则实例会显示 SQL 维护这一消息以及安排开始进行维护的日期和时间。

如果维护事件被取消,会出现什么情况?

如果 Cloud SQL 取消维护事件,您会收到有关维护已被取消的通知。在极少数情况下,Cloud SQL 可能无法提前发送取消通知。在这种情况下,系统会在安排的维护期过后通知您没有进行维护。

维护事件重新安排后,您会收到有关即将进行维护的新通知。

如何重新安排维护?

当您收到维护通知时,可以选择更改维护期。例如,如果您已经制定了发布服务的计划,可能希望将维护期重新安排在发布服务之前或之后的几天。

如需重新安排维护,请转到实例列表页面。维护列会显示安排维护的日期和时间。在同一列中,有一个用于重新安排维护的重新安排按钮。

对于新的维护窗口,您可以作出一些安排选择:

  • 立即应用更新。您可以立即将更新应用于实例,而不是等待安排的维护期。如果您选择立即开始维护,则维护操作通常会在五分钟内开始。
  • 重新安排到其他时间。您可以通过以下两种方式推迟已安排的维护事件:

    • 下一个可用时段。这样会将维护期每次推迟一周,并且每个实例的每个事件最多只能有一次重新安排的维护。
    • 特定时间。这样,您可以选择最初安排维护的一周内的任意新时间。

关于重新安排,您需要了解以下几点:

  • 您必须在最初安排的维护事件发生前至少 24 小时重新安排维护。

  • 您可以为项目中的一个或多个实例重新安排维护。但是,您一次只能重新安排一个实例(无法批量进行重新安排)。

  • 您不能多次更改维护期,即使尝试立即应用更改也不行。

  • 您可以将维护重新安排在拒绝维护期内,甚至在维护期外,只要相应的时间在一周的重新安排限制范围内即可。

如需立即重新安排维护,请查看重新安排定期维护

拒绝维护期

借助拒绝维护期,您可以防止在特定时间段内进行自动维护。例如,年底的节假日是高峰负载时段,这需要对许多零售企业的基础架构稳定性给予更多关注。通过将拒绝维护期设置为 10 月中旬到 1 月中旬,这些企业可以避免在一年当中最繁忙的时段执行 Cloud SQL 计划性升级。

您的 Cloud SQL 实例一次可以有一个拒绝维护期。即使您没有为实例配置维护期,也可以设置拒绝维护期。拒绝维护期可能从 1 天到 90 天不等。

拒绝维护期和相对时间安排是独立的功能。在 Earlier 实例中指定的拒绝维护期不会影响 Later 实例的时间表。如果维护时间安排在 EarlierLater 实例的拒绝维护期内,则系统不会发送通知。

在主实例上设置拒绝维护期后,还会拒绝与主实例关联的所有副本的维护。例如,位于地区 A 的主实例有三个读取副本:两个位于地区 A,另一个位于地区 B。在主实例上设置拒绝维护期后,在主实例的拒绝维护期结束之前,每个副本(包括位于地区 B 的副本)都不会得到维护。

通过不在开始和结束日期参数中添加年份,您可以将拒绝维护期设置为每年重复。如果指定了年份,则表示您仅为该年份设置拒绝维护期。

了解如何配置拒绝维护期

后续步骤