查找和设置维护期

本页面介绍如何查找和设置 Cloud SQL 实例的维护期。如需详细了解 Cloud SQL 为何及如何执行维护,请参阅 Cloud SQL 实例维护概览

准备工作

  1. 登录您的 Google 帐号。

    如果您还没有 Google 帐号,请注册一个新帐号

  2. 在 Cloud Console 的项目选择器页面上,选择或创建 Cloud 项目。

    转到项目选择器页面

  3. 确保您的 Google Cloud 项目已启用结算功能。 了解如何确认您的项目已启用结算功能

  4. 安装并初始化 Cloud SDK

为实例设置首选维护期

如需设置首选维护期,请执行以下操作:

控制台

  1. 转到实例页面。

    转到“实例”页面

  2. 点击实例名称。
  3. 在 Cloud SQL 实例概览页面上,点击修改维护偏好设置
  4. 配置选项下,打开维护
  5. 配置以下选项:
    • 首选时段。设置此实例可以进行更新的日期和时间范围。
    • 更新顺序。设置此实例相对于其他实例的更新顺序。请将时间安排设置为任意较早晚些时候。使用较早设置的实例要比使用晚些时候设置的实例提前长达一周的时间收到更新,但前提是所比较的实例均位于同一位置。

gcloud

在使用下面的 gcloud 命令之前,请先进行以下替换:
  • instance-id:要重新安排的实例
  • day:所需的维护日期。请设置为 SUNMONTUEWEDTHUFRISAT 之一。
  • hour:以世界协调时间 (UTC) 时区 (1-24) 表示的维护期时间。
    gcloud sql instances patch instance-id
        --maintenance-window-day=day
        --maintenance-window-hour=hour
    
如需了解参考信息,请参阅 gcloud sql instances patch

选择接收维护通知

如果您没有为实例设置首选维护期,那么即使您选择了接收通知,也不会收到通知

  1. 转到通信页面。
    转到“通信”页面
  2. Cloud SQL 维护期所对应的行中,选择电子邮件下方的单选按钮以开启电子邮件功能。

每个需要接收通知的用户必须分别选择接收通知。

在 Cloud Console 中查找维护通知

您可以在 Cloud Console 的以下几个位置查看维护通知:

  • 活动信息中心内,查找标有 SQL 维护的实例。
    转到“活动”页面

  • 如果实例已安排维护,则维护日期会列在实例页面的维护列中。维护列通常处于隐藏状态,但会在安排维护后自动显示出来。如果您希望维护列始终处于显示状态,也可以从列显示选项 (“列显示选项”图标为三条线) 中选择维护

  • 或者,您可以选择实例以转到实例详情页面。如果实例已安排维护,您会在维护窗格中看到一条消息。
    转到“实例”页面

重新安排计划内维护

如需重新安排计划内维护,请执行以下操作:

控制台

  1. 转到实例页面。

    转到“实例”页面

  2. 针对维护一词进行过滤,以列出所有已安排维护的实例。
  3. 维护列下,点击重新安排
  4. 重新安排对话框中,选择是立即应用维护、将维护重新安排在原计划时间后的一周内进行,还是安排其他时间。

gcloud

在使用下面的 gcloud 命令之前,请先进行以下替换:
  • instance-id:要重新安排的实例
  • reschedule-type:使用 IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME 之一。
  • 如果您选择 NEXT_AVAILABLE_WINDOW,则维护将被重新安排在原计划日期和时间后的一周内进行。
  • reschedule-time:如果选择 SPECIFIC_TIME 作为 reschedule-type,您还需要设置此标志来指定新的维护日期和时间。该值采用 ISO 8601 格式,例如 2020-01-16T16:56:00.000Z。
  gcloud sql reschedule-maintenance instance-id
      --reschedule-type=reschedule-type
      [--schedule-time=reschedule-time]
  
如需了解参考信息,请参阅 gcloud sql reschedule-maintenance

REST

在使用下面的任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • reschedule-type:使用 IMMEDIATENEXT_AVAILABLE_WINDOWSPECIFIC_TIME 之一。如果您选择 NEXT_AVAILABLE_WINDOW,则维护将被重新安排在原计划日期和时间后的一周内进行。

HTTP 方法和网址:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/rescheduleMaintenance

请求 JSON 正文:

{
  "reschedule": {
    "reschedule_type": "reschedule-type"
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": RESCHEDULE_MAINTENANCE,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:post 页面上的 API Explorer

配置拒绝维护期

如要配置拒绝维护期,请设置开始日期、结束日期以及间隔的开始和结束时间。拒绝维护期可能从 1 天到 90 天不等。

在任何给定时间,您最多可以在 Cloud SQL 实例上配置一个拒绝维护期。您可以手动移除拒绝维护期,无论它是否已经出现。

开始日期和结束日期有两种格式:

  • yyyy-mm-dd:表示特定日期
  • mm-dd:表示每年重复的日期

开始日期和结束日期均为世界协调时间 (UTC)。如需设置时区,请使用时间字段来调整开始时间。例如,开始日期 = 2020-10-10,时间 = 07:00:00 表示开始时间是世界协调时间 (UTC) 2020-10-10 07:00:00 (2020-10-10 00:00:00 PST)。

对于时间,格式为 HH:mm:SS

  • 小时介于 0 和 23 之间(含 0 和 23)。
  • 分钟和秒介于 0 到 59(包含 0 到 59)之间。

使用 gcloud 或 REST API 配置拒绝维护期。

gcloud

在使用下面的 gcloud 命令之前,请先进行以下替换:
  • instance-id:Cloud SQL 实例 ID。
  • start-date:间隔开始的日期。例如:2021-11-29
  • end-date:间隔结束的日期。例如:2021-12-02
  • time:间隔开始和结束的具体时间。例如:00:00:00
gcloud sql instances patch instance-id\
 --maintenance-deny-period-start-date start-date \
 --maintenance-deny-period-end-date end-date \
 --maintenance-deny-period-time time

REST

在使用下面的任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • start-date:年重复的开始日期 (yyyy-mm-dd) 或 (mm-dd)
  • end-date:年重复的结束日期 (yyyy-mm-dd) 或 (mm-dd)
  • time:开始时间和结束时间 (HH:mm:SS)

HTTP 方法和网址:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

请求 JSON 正文:

{
  "settings":
  {
    "denyMaintenancePeriod": {
      "start_date": "start-date",
      "end_date": "end-date"
      "time": "time"
    }
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

移除拒绝维护期

您可以使用 gcloud 或 REST API 移除拒绝维护期。

gcloud

在使用下面的 gcloud 命令之前,请先进行以下替换:
  • instance-id:Cloud SQL 实例 ID。
gcloud sql instances patch instance-id \
 --remove-maintenance-deny-period

REST

在使用下面的任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

请求 JSON 正文:

{
  "settings":
  {
    "denyMaintenancePeriods": []
  }
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "startTime": "08:00",
  "endTime": "08:01",
  "operationType": MAINTENANCE_DENY_PERIOD,
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

拒绝维护期通知

当计划的维护时间在拒绝维护期内且维护拒绝期设置禁止该维护期通知,则不会发送维护期通知。

当实例拒绝维护期限设置更改为禁止在先前计划的时间进行维护时,将跳过维护并发送维护取消通知。此取消通知在实例先前计划进行更新时发送。

计划性维护通知将在拒绝维护期间发送,前提是将维护安排在该时间段之外。

后续步骤