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

启用了 Azure Arc 的 SQL 托管实例的可升级性规程

使用启用了 Azure Arc 的数据服务可获取启用了 Arc 的 SQL 托管实例中才提供的永久版 SQL。 因其永久性,启用了 Arc 的 SQL 托管实例提供了基于托管服务的可升级性,因此与本地安装或多云环境不同,使用它即可从 Azure 基础结构的创新中获益。

本文提供了有关为启用了 Azure Arc 的数据服务配置和管理升级过程的关键设计注意事项和建议。

体系结构

直接连接模式

下图显示“直接连接”模式下的数据服务升级流程。

该屏幕截图显示“直接连接”模式下的数据服务升级流程。

间接连接模式

下图显示“间接连接”模式下的数据服务升级流程。

该屏幕截图显示“间接连接”模式下的数据服务升级流程。

“常规用途”服务层级

下图显示“常规用途”服务层级中启用了 Arc 的 SQL 托管实例的升级过程。

该屏幕截图显示“常规用途”服务层级中启用了 Arc 的 SQL 托管实例的预升级过程。

该屏幕截图显示“常规用途”服务层级中启用了 Arc 的 SQL 托管实例的升级过程。

“业务关键”服务层级

下图显示“业务关键”服务层级中启用了 Arc 的 SQL 托管实例的升级过程。

该屏幕截图显示“业务关键”服务层级中启用了 Arc 的 SQL 托管实例的预升级过程。

该屏幕截图显示“业务关键”服务层级中启用了 Arc 的 SQL 托管实例的升级过程。

该屏幕截图显示业务关键服务层级升级中剩余的辅助副本升级推出。

该屏幕截图显示了“业务关键”服务层级升级中的 SQL 级故障转移和最后一个 pod 实例化。

设计注意事项

Azure Arc 数据控制器升级

  • 可以使用 Azure CLI、Azure 门户或 Kubernetes 等各种工具执行升级。 根据使用的连接模式(直接或间接连接模式)以及最常用的工具,考虑使用哪种工具。
  • 查看 Azure Arc 数据控制器,以检查是否有任何预览数据服务(如启用了 Azure Arc 的 PostgreSQL)与启用了 Arc 的 SQL 托管实例一同部署。 如果在同一数据控制器上同时部署了预览版和正式发布版服务,则无法执行就地升级。
  • 执行升级之前,查看数据控制器使用的所有启用了 Arc 的 SQL 托管实例的版本,以确认其是否与数据控制器的版本相同。
  • 考虑支持的升级路径,在升级前确定数据控制器的下一个正确版本。

注意

升级 Azure Arc 数据控制器不会导致启用了 Arc 的 SQL 托管实例停机。

直接连接模式

间接连接模式

  • 确定是否应使用 Azure CLIKubernetes 工具实现“间接连接”模式下的 Azure Arc 数据控制器升级。
  • 查看使用 Kubernetes 工具Azure CLI 进行升级的先决条件。
  • 决定是使用 Microsoft 工件注册表(如果群集具有 Internet 连接)还是使用专用注册表(如果群集是实体隔离的)来拉取启用了 Azure Arc 的数据服务映像。
  • 为用于使用 Kubernetes 工具升级 Azure Arc 数据控制器的服务帐户规划所需的 Kubernetes 权限
  • 检查存储库信息以确保其有效且其中已拉入新图像。

启用了 Azure Arc 的 SQL 托管实例升级

一般注意事项

  • 必须先升级到 Azure Arc 数据控制器,然后再升级启用了 Arc 的 SQL 托管实例。 arcdata 群集扩展和 SQL 托管实例扩展的版本属于同一组,必须相同。
  • 根据要求,决定是自动还是手动升级启用了 Arc 的 SQL 托管实例。
  • 自动升级时,只能为数据控制器定义一个维护窗口。 考虑不同工作负载所需的不同维护窗口的数量,以确定所需数据控制器的数量。

“常规用途”服务层级

  • 在升级常规用途服务层级期间,终止 Kubernetes pod 并为其重新预配新版本。 务必了解升级对应用程序和客户端的影响,因为新建 pod 时会有一小段停机时间。
  • 查看应用程序的体系结构,了解其是否具有所需的复原能力和重试逻辑以承受升级期间的短暂影响。

“业务关键”服务层级

  • 在使用多个副本升级业务关键服务层级期间,首先升级辅助副本。 升级后的辅助副本之一会提升为新的主要副本,而旧的主要副本会成为辅助副本并升级。 在旧主要副本转换为新主要副本期间,发生故障转移时会有一段短暂的停机时间。 务必了解发生故障转移时升级对应用程序和客户端的影响。
  • 查看应用程序的体系结构,了解其是否具有所需的复原能力和重试逻辑以承受升级期间的短暂影响。

设计建议

Azure Arc 数据控制器升级

  • 如果使用 Azure CLI 进行升级,请验证版本日志中 arcdata Azure CLI 扩展版本是否与要升级为的映像版本相对应。

  • 在多群集环境中,首先在测试/开发环境中执行升级,以验证任何潜在问题或中断性变更。

  • 在升级之前执行 dry run,以验证版本架构、专用存储库授权令牌(如果使用)以及注册表是否存在,然后再尝试升级。

  • 创建监视新的 Azure Arc 数据控制器升级的流程。

  • 请勿在同一数据控制器上同时使用 PostgreSQL 和启用了 Arc 的 SQL 托管实例,因为 PostgreSQL 仍处于预览阶段,而启用了 Arc 的 SQL 托管实例已正式发布。 考虑使用具有专属数据控制器的独立群集来测试 PostgreSQL。

  • 避免在生产环境中使用预览功能,并且预览功能仅用于在开发/测试实例上进行评估。

  • 创建已部署数据控制器的当前版本的清单。 Azure Resource Graph 可用于查询当前部署的数据控制器。

      resources
      | where type == 'microsoft.azurearcdata/datacontrollers'
      | extend version = tostring(properties.k8sRaw.status.runningVersion)
      | project name,location,resourceGroup,version
    
  • 查看故障排除指南,了解如何获取所需日志来解决任何升级问题。

直接连接模式

间接连接模式

启用了 Azure Arc 的 SQL 托管实例升级

常规建议

  • 将启用了 Arc 的 SQL 托管实例更新为最新可用版本,以接收最新的补丁、bug 修复和功能。 目前,Arc 数据服务不支持在升级期间跳过版本。 因此,如果有多个版本要升级,需按顺序升级版本才能获得最新版本。 建议不要与最新版本相差太多。

  • 确保配置“时间点还原”备份策略,以便在升级过程中出现问题时能够恢复。 查看业务连续性和灾难恢复关键设计领域,并对实例使用 kubectl describe sqlmi 命令来验证当前的保留设置。

  • 在多群集环境或具有代表不同环境的多个启用了 Arc 的 SQL 托管实例部署的方案中,首先在开发/测试环境(例如开发环境)中执行升级,以验证任何潜在问题或中断性变更。

  • 在升级之前执行 dry run,以验证版本架构、专用存储库授权令牌(如果使用)以及注册表是否存在,然后再尝试升级。

  • 使用 Azure CLI 对启用了 Arc 的 SQL 托管实例执行大规模升级。

  • 对允许立即升级的工作负载使用自动升级,对需在计划的非高峰时间执行升级的工作负载不使用自动升级。

  • 如果使用自动升级,请确保定义合适的维护窗口,以便在非高峰时间进行升级。

  • 手动升级时,确保按合适速度升级为受支持的版本。

    注意

    还可以轮询 Microsoft 工件注册表以获取新的容器映像版本。

  • 创建使用 Azure CLIKubernetes 工具监视升级状态的流程。

  • 在执行升级之前检查不同组件的相应版本,以验证是否部署了组件的正确版本。

“常规用途”服务层级

“业务关键”服务层级

  • 部署具有三个副本而不是两个副本的业务关键实例,以在升级和故障转移期间实现更高的可用性和更短的停机时间。
  • 在非关键时间执行升级,以尽量减少对用户和组织数据的影响。

后续步骤

有关混合云和多云旅程的详细信息,请参阅以下文章: