你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

维护时段 - 已启用 Azure Arc 的数据服务

在数据控制器上配置维护时段以定义升级时间段。 在此时间段内,将会升级该数据控制器上的、其 desiredVersion 属性设置为 auto 的已启用 Arc 的 SQL 托管实例。

在设置期间指定持续时间、重复周期以及开始日期和时间。 维护时段开始后,维护的运行时长为在持续时间中设置的时间段。 附加到数据控制器的实例将开始(并行)升级。 在设置的持续时间结束时,任何正在进行的升级将会继续直至完成。 尚未在该时段内开始升级的任何实例将在下一个重复周期开始升级。

先决条件

Azure Arc 启用的 SQL 托管实例,desiredVersion 属性设置为 auto

限制

维护时段持续时间可为 2 小时到 8 小时。

对于每个数据控制器只能设置一个维护时段。

配置维护时段

维护时段采用以下设置:

  • 持续时间 - 维护时段的运行时长,以小时和分钟 (HH:mm) 表示。
  • 重复周期 - 维护时段的发生频率。 所有单词区分大小写,且必须大写。 可以设置每周或每月时段。
    • 每周
      • [Week | Weekly][day of week]
      • 示例:
        • --recurrence "Week Thursday"
        • --recurrence "Weekly Saturday"
    • 每月
      • [Month | Monthly] [First | Second | Third | Fourth | Last] [day of week]
      • 示例:
        • --recurrence "Month Fourth Saturday"
        • --recurrence "Monthly Last Monday"
    • 如果未指定重复周期,则表示一次性维护时段。
  • 开始 - 第一个维护时段的日期和时间,格式为 YYYY-MM-DDThh:mm(24 小时格式)。
    • 示例:
      • --start "2022-02-01T23:00"
  • 时区 - 与维护时段关联的时区

CLI

若要创建维护时段,请使用以下命令:

az arcdata dc update --maintenance-start <date and time> --maintenance-duration <time> --maintenance-recurrence <interval> --maintenance-time-zone <time zone> --k8s-namespace <namespace> --use-k8s

示例:

az arcdata dc update --maintenance-start "2022-01-01T23:00" --maintenance-duration 3:00 --maintenance-recurrence "Monthly First Saturday" --maintenance-time-zone US/Pacific --k8s-namespace arc --use-k8s

监视升级

在维护时段,可以查看升级状态。

kubectl -n <namespace> get sqlmi -o yaml 

status.runningVersionstatus.lastUpdateTime 字段将显示最新版本以及状态更改时间。

查看现有维护时段

可以在 datacontroller 规范中查看维护时段。

kubectl describe datacontroller -n <namespace>

输出:

Spec:  
  Settings:
    Maintenance:
      Duration:    3:00
      Recurrence:  Monthly First Saturday
      Start:       2022-01-01T23:00
      Time Zone:   US/Pacific

失败的升级

升级失败时不会自动回滚。 如果某个实例无法自动升级,则需要使用 az sql mi-arc update 手动干预,以将该实例固定到其当前正在运行的版本。 问题解决后,可将版本重新设置为“auto”。

az sql mi-arc upgrade --name <instance name> --desired-version <version> 

示例:

az sql mi-arc upgrade --name sql01 --desired-version v1.2.0_2021-12-15

禁用维护时段

禁用维护时段后,自动升级将不运行。

az arcdata dc update --maintenance-enabled false --k8s-namespace <namespace> --use-k8s

示例:

az arcdata dc update --maintenance-enabled false --k8s-namespace arc --use-k8s

启用维护时段

启用维护时段后,自动升级将会恢复。

az arcdata dc update --maintenance-enabled true --k8s-namespace <namespace> --use-k8s

示例:

az arcdata dc update --maintenance-enabled true --k8s-namespace arc --use-k8s

更改维护时段选项

update 命令可用于更改任何选项。 在此示例中,我将更新开始时间。

az arcdata dc update --maintenance-start <date and time> --k8s-namespace arc --use-k8s

示例:

az arcdata dc update --maintenance-start "2022-04-15T23:00" --k8s-namespace arc --use-k8s

启用 SQL 托管实例自动升级