客户自定义的维护时段

Gen 2

请设置部署的维护日期和开始时间。Cloud Databases 会控制维护时段的持续时间,所有维护工作将在您安排的开始时间后的 4 小时内完成或停止。

可用性

以下情况支持客户自定义维护时段:

  • Databases for PostgreSQL 在 eu-de 中。
  • Databases for MongoDB Enterprise Edition 位于。eu-de

今后将逐步增加对更多数据库和区域的支持。

请配置一个每日维护时段,除非贵组织要求仅在特定日期进行维护。 通过设置每日维护窗口,待处理或未完成的维护工作( 包括安全性和可靠性更新)可在次日恢复进行,而无需等到下周。

维护内容包括哪些

维护包括任何直接影响您部署的变更,例如:

  • 数据库软件和图像更新。
  • 对您部署所运行的 worker 节点进行的更新。
  • 安全性、可靠性和可维护性更新。

这些变更将在您的维护时段内进行,即使它们不会对服务造成明显影响。 您自行请求的更改(例如调整部署规模)将在您提出请求时立即执行。

在维护期间,您的部署可能会切换到新的主节点。 请确保您的应用程序能够自动重新连接。 如需了解更多信息,请参阅“ 高可用性”。

默认维护时段

您无需设置维护时段。 如果您未进行设置,Cloud Databases 将采用该地区的默认设置:周一至周五,开始时间在 UTC 23:00 至 UTC 10:00 之间。 未显示确切的开始时间。

若在设置了自定义窗口后想恢复为区域默认设置,请将 system_assigned 设置为 true。

维护窗口要求

  • 您只能设置开始时间。 无法设置持续时间或结束时间。Cloud Databases 控制维护窗口的时长。
  • 请使用 hh:mmZ 格式指定UTC时间。
  • 每周至少选择一天进行维护。 建议设置每日维护时段。 如需了解更多信息,请参阅 “如果维护未能按时完成”。
  • 请将开始时间设置为比您希望其适用的维护时段至少提前60分钟。
  • 您可以随时更新维护时段。 更改将在下一个符合条件的维护窗口期生效。 如果当天的维护工作已经完成,则更新后的计划将在下次符合维护条件时生效。
  • 如果在维护进行期间更新维护时间段,当前的维护操作不会重新开始。 更新后的日程安排适用于下一个符合条件的维护时段。
  • 维护通知是根据生成通知时生效的计划安排的。 在维护窗口开始前不久所做的更改,可能不会应用于已经生成或发送的通知。

维护窗口的工作原理

维护窗口自计划开始时间起持续4小时,所有维护工作均将在该时段内完成或停止。

例如,如果您的维护开始时间为 02:00 UTC:

示例维护时段,开始时间为 02:00 UTC
时间 (UTC) 会发生什么
02:00 - 6:00 维护工作开始,各项维护活动随之展开。 您的部署可能会切换到新的主服务器,届时您的应用程序可能需要重新连接。
截至06:00 所有维护工作均已完成或已停止。

选择开始时间时,请将整个4小时的时间段都纳入计划,而不仅仅是开始时间。 请选择应用程序流量最小且运维团队在岗的时间段。

您的备份绝不会与维护时段重叠。Cloud Databases 会自动调整备份计划。

设置维护时段

您可以通过控制台、CLI、API 或 Terraform 设置维护日期和开始时间。

在控制台中设置维护时段

您可以在创建部署时或完成配置后设置维护时段。

  1. 在 IBM Cloud 控制台中,创建一个部署或打开一个现有的部署。
  2. 转到 “维护”窗口,然后单击“编辑”。
  3. 请选择可以开始维护的星期几。 建议制定一份日常维护计划。
  4. 请选择维护开始时间。 您可以选择以UTC时间或您所在时区的时间显示时间。
  5. 查看维护计划,然后单击 “保存”。

若要恢复为该区域的默认维护时段,请单击“重置为默认值”。

使用 CLI 设置维护时段

您可以使用以下命令设置特定的维护时段:

ibmcloud resource service-instance-create \
  <INSTANCE_NAME> \
  <SERVICE_NAME> \
  <SERVICE_PLAN_NAME> \
  <LOCATION> \
  -g <RESOURCE_GROUP> \
  -p '{
    "dataservices": {
      "maintenance": {
        "window": {
          "start_time": "05:00Z",
          "days": "Wednesday,Thursday"
        }
      }
    }
  }'

您可以使用以下命令设置 system_assigned 的维护时段:

ibmcloud resource service-instance-create \
  <INSTANCE_NAME> \
  <SERVICE_NAME> \
  <SERVICE_PLAN_NAME> \
  <LOCATION> \
  -g <RESOURCE_GROUP> \
  -p '{
    "dataservices": {
      "maintenance": {
        "window": {
          "system_assigned": true
        }
      }
    }
  }'

使用 API 设置维护时段

您可以使用以下请求设置特定的维护时段:

curl -X POST \
  "https://resource-controller.cloud.ibm.com/v2/resource_instances" \
  -H "Authorization: Bearer <IAM_ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "<DATABASE_INSTANCE_NAME>",
    "target": "<REGION>",
    "resource_group": "<RESOURCE_GROUP_ID>",
    "resource_plan_id": "<DATABASE_SERVICE_PLAN_ID>",
    "parameters": {
      "dataservices": {
        "maintenance": {
          "window": {
            "start_time": "05:00Z",
            "days": "Wednesday,Thursday"
          }
        }
      }
    }
  }'

您可以使用以下请求设置 system_assigned 的维护时段:

curl -X POST \
  "https://resource-controller.cloud.ibm.com/v2/resource_instances" \
  -H "Authorization: Bearer <IAM_ACCESS_TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "<DATABASE_INSTANCE_NAME>",
    "target": "<REGION>",
    "resource_group": "<RESOURCE_GROUP_ID>",
    "resource_plan_id": "<DATABASE_SERVICE_PLAN_ID>",
    "parameters": {
      "dataservices": {
        "maintenance": {
          "window": {
            "system_assigned": true
          }
        }
      }
    }
  }'

使用 Terraform 设置维护时段

您可以通过以下 Terraform 请求设置特定的维护时段:

maintenance_days = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"]
data "ibm_resource_group" "rg" {
  name = var.resource_group_name
}
resource "ibm_database" "cmw_test" {
  name              = "<DATABASE_INSTANCE_NAME>"
  resource_group_id = data.ibm_resource_group.rg.id
  service = "<DATABASE_SERVICE_NAME>"
  plan    = "<DATABASE_SERVICE_PLAN_ID>"
  location          = "<GEN2-REGION>"
  service_endpoints = "private"
  maintenance {
    window {
      start_time = "05:00Z"
      days       = var.maintenance_days
    }
  }
}

您可以通过以下 Terraform 请求设置 system_assigned 的维护时段:

data "ibm_resource_group" "rg" {
  name = var.resource_group_name
}
resource "ibm_database" "cmw_test" {
  name              = "<DATABASE_INSTANCE_NAME>"
  resource_group_id = data.ibm_resource_group.rg.id
  service = "<DATABASE_SERVICE_NAME>"
  plan    = "<DATABASE_SERVICE_PLAN_ID>"
  location          = "<GEN2-REGION>"
  service_endpoints = "private"
  maintenance {
    window {
      system_assigned = true
    }
  }
}

维护跟踪

当您的部署即将进行维护时,您将在维护活动开始前至少 2 小时收到一条 IBM Cloud Activity Tracker 事件通知。

IBM Cloud Activity Tracker 当维护窗口顺利完成导致任何服务实例更新时,也会触发相关事件。 查看“数据库 Activity Tracker”系列活动的 完整列表。

维护不彻底

维护操作绝不会超出您的维护时段。 如果维护操作在开始时间4小时后仍在运行,Cloud Databases 会将其终止。 剩余的工作将在您的下一个维护窗口内进行。 在此期间,您的部署仍可正常使用。

设定每日维护时段。 如果您每周只选择一天,未完成的维护工作(包括安全修复)将最多等待一周,直到您下一次安排的维护时段。 在每日维护时段结束后,维护工作将于次日恢复,确保您的部署始终保持最新且安全。

紧急维护

在特殊情况下,紧急维护可能会在计划维护时间段之外进行,且不会提前通知。 在这些情况下,不会创建计划维护事件。