如何升级 SQL Server 大数据群集

适用范围:SQL Server 2019 (15.x)

重要

Microsoft SQL Server 2019 大数据群集附加产品将停用。 对 SQL Server 2019 大数据群集的支持将于 2025 年 2 月 28 日结束。 具有软件保障的 SQL Server 2019 的所有现有用户都将在平台上获得完全支持,在此之前,该软件将继续通过 SQL Server 累积更新进行维护。 有关详细信息,请参阅公告博客文章Microsoft SQL Server 平台上的大数据选项

升级路径取决于 SQL Server 大数据群集的当前版本。 若要从支持的版本(包括常规分发版本 (GDR)、累积更新 (CU) 或快速修补工程 (QFE) 更新)升级,可以就地升级。 不支持从 BDC 的社区技术预览版 (CTP) 或候选发布版本进行就地升级。 需要删除并重新创建群集。 以下部分介绍了每个场景的步骤:

注意

大数据群集的当前最旧的受支持版本为 SQL Server 2019 CU8。

升级发行说明

在继续操作之前,请查看升级发行说明已知问题

警告

在最初部署群集时,需要在部署配置文件 control.json 文件中将参数 imagePullPolicy 设置为 "Always"。 部署后,无法更改此参数。 如果使用不同的值进行设置,则可能会在升级过程中出现意外的结果,并且需要进行群集重新部署。

从支持的版本升级

本部分介绍如何将 SQL Server BDC 从支持的版本(从 SQL Server 2019 GDR1 开始)升级到新的支持版本。

  1. 验证是否没有活动的 Livy 会话。

    请确保没有活动的 Livy 会话或批处理作业正在 Azure Data Studio 中运行。 若要确认这一点,一种简单的方法是通过 curl 命令或浏览器来请求这些 URL:

    • <your-gateway-endpoint>/gateway/default/livy/v1/sessions
    • <your-gateway-endpoint>/gateway/default/livy/v1/batches
  2. 备份 SQL Server 主实例。

  3. 备份 HDFS。

    azdata bdc hdfs cp --from-path <path> --to-path <path>
    

    例如:

    azdata bdc hdfs cp --from-path hdfs://user/hive/warehouse/%%D --to-path ./%%D
    
  4. 更新 Azure Data CLI (azdata)。

    按照说明安装 Azure Data CLI (azdata)。

    备注

    如果 Azure Data CLI (azdata) 随 pip 一起安装,则需要在安装 Windows 安装程序或 Linux 包管理器之前将其手动删除。

  5. 更新大数据群集。

    azdata bdc upgrade -n <clusterName> -t <imageTag> -r <containerRegistry>/<containerRepository>
    

    例如,以下脚本使用 2019-CU19-ubuntu-20.04 图像标记:

    azdata bdc upgrade -n bdc -t 2019-CU19-ubuntu-20.04 -r mcr.microsoft.com/mssql/bdc
    

注意

最新的图像标记可以在 SQL Server 2019 大数据群集发行说明中获得。

重要

如果使用专用存储库来预提取用于部署或升级 BDC 的映像,请确保当前版本映像和目标版本映像位于专用存储库中。 这样,在必要时可以成功回退。 此外,如果在原始部署后更改了专用存储库的凭据,请更新相应的环境变量 DOCKER_PASSWORD 和 DOCKER_USERNAME。 不支持对当前版本和目标版本使用不同的专用存储库进行升级。

增加升级的超时时间值

如果在分配的时间内未升级某些组件,则可能会发生超时。 下面的代码显示了提示失败的消息:

>azdata.EXE bdc upgrade --name <mssql-cluster>
Upgrading cluster to version 15.0.4003

NOTE: Cluster upgrade can take a significant amount of time depending on
configuration, network speed, and the number of nodes in the cluster.

Upgrading Control Plane.
Control plane upgrade failed. Failed to upgrade controller.

若要增加升级的超时时间,请在进行升级时使用 --controller-timeout 和 --component-timeout 参数指定较高的值 。 此选项仅自 SQL Server 2019 CU2 版本起开始提供。 例如:

azdata bdc upgrade -t 2019-CU19-ubuntu-20.04 --controller-timeout=40 --component-timeout=40 --stability-threshold=3

--controller-timeout 指定等待控制器或控制器 db 完成升级所需的分钟数。 --component-timeout 指定升级的每个后续阶段必须完成的时间量。

若要增加低于 SQL Server 2019 CU19 版本的版本升级的超时时间值,请编辑升级配置映射。 编辑升级配置映射:

运行以下命令:

kubectl edit configmap controller-upgrade-configmap

编辑以下字段:

controllerUpgradeTimeoutInMinutes 指定等待控制器或控制器 db 完成升级所需的分钟数。 默认值为 5。 至少更新为 20。 totalUpgradeTimeoutInMinutes:指定控制器和控制器 db 完成升级所需的总时间(控制器 + 控制器 db 升级)。默认值为 10。 至少更新为 40。 componentUpgradeTimeoutInMinutes:指定升级的每个后续阶段必须完成的时间量。 默认值为 30。 更新为 45。

保存并退出。

从 CTP 或候选发布更新 BDC 部署

不支持从 SQL Server 大数据群集的 CTP 或候选发布版本就地升级。 以下部分介绍如何手动删除并重新创建群集。

备份和删除旧群集

在 SQL Server 2019 GDR1 版本之前,不会对部署的大数据群集进行就地升级。 升级到新版本的唯一方法是手动删除并重新创建群集。 每个版本都有唯一的 Azure Data CLI (azdata) 版本,该版本与以前的版本不兼容。 此外,如果在部署了不同旧版本的群集上下载了新的容器映像,则最新映像可能与群集上的旧映像不兼容。 当在容器设置的部署配置文件中使用 latest 映像标记时,将拉取较新的映像。 默认情况下,每个版本都具有与 SQL Server 发行版本相对应的特定映像标记。 若要升级到最新版本,请使用以下步骤:

  1. 在删除旧群集之前,备份 SQL Server 主实例和 HDFS 上的数据。 对于 SQL Server 主实例,可以使用 SQL Server 备份和还原。 对于 HDFS,可以使用 curl 复制数据

  2. 使用 azdata delete cluster 命令删除旧群集。

     azdata bdc delete --name <old-cluster-name>
    

    重要

    使用与群集匹配的 Azure Data CLI (azdata) 版本。 请勿删除具有较新 Azure Data CLI (azdata) 版本的旧群集。

    注意

    发出 azdata bdc delete 命令将导致删除以大数据群集名称标识的命名空间中所创建的所有对象,而不会删除命名空间本身。 只要命名空间为空且未在其中创建其他应用程序,就可以在后续部署中重复使用该命名空间。

  3. 卸载旧版本的 Azure Data CLI (azdata)。

    pip3 uninstall -r https://azdatacli.blob.core.windows.net/python/azdata/2019-rc1/requirements.txt
    
  4. 安装最新版本的 Azure Data CLI (azdata)。 通过以下命令安装最新版本的 Azure Data CLI (azdata):

    Windows:

    pip3 install -r https://aka.ms/azdata
    

    Linux:

    pip3 install -r https://aka.ms/azdata --user
    

    重要

    对于每个版本,Azure Data CLI (azdata) 的 n-1 版本的路径都有变化。 即使以前安装了 Azure Data CLI (azdata),也必须在创建新群集前从最新路径重新安装。

验证 azdata 版本

在部署新的大数据群集之前,请使用 --version 参数验证你是否使用最新版本的 Azure Data CLI (azdata):

azdata --version

安装新版本

删除以前的大数据群集并安装最新的 Azure Data CLI (azdata) 后,使用当前的部署说明部署新的大数据群集。 有关详细信息,请参阅如何在 Kubernetes 上部署 SQL Server 大数据群集。 然后,还原所有必需的数据库或文件。

后续步骤

有关大数据群集的详细信息,请参阅什么是 SQL Server 大数据群集