你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
使用 CLI 升级直接连接到 Azure Arc 的 Azure SQL 托管实例
本文介绍如何使用 Azure CLI (az
) 升级在直接连接的已启用 Azure Arc 的数据控制器上部署的 Azure SQL 托管实例。
先决条件
安装工具
在继续完成本文中的任务之前,请安装:
arcdata
扩展版本与映像版本相关。 检查是否具有与版本日志中要升级到的映像版本对应的 arcdata
扩展版本。
限制
必须先将 Azure Arc 数据控制器升级到新版本,然后才能升级托管实例。
如果启用了 Active Directory 集成,则必须将 Active Directory 连接器升级到新版本,然后才能升级托管实例。
在升级数据控制器之前,托管实例必须与数据控制器和 Active Directory 连接器的版本相同。
目前没有可用的批处理升级过程。
升级托管实例
可以先执行试运行。 试运行会验证版本架构并列出将要升级的实例。 使用 --dry-run
。 例如:
az sql mi-arc upgrade --resource-group <resource group> --name <instance name> --dry-run
输出将为:
Preparing to upgrade sql sqlmi-1 in namespace arc to data controller version.
****Dry Run****1 instance(s) would be upgraded by this commandsqlmi-1 would be upgraded to <version-tag>.
常规用途
在 SQL 托管实例常规用途升级期间,将终止 Pod 并在新版本中重新配置。 这会导致在创建新 Pod 时出现短暂的停机时间。 需要在应用程序中构建复原能力,如连接重试逻辑,以确保尽量减少中断。 若要详细了解构建复原能力和 Azure 服务重试指南,请参阅可靠性支柱概述。
业务关键
在具有多个副本的 SQL 托管实例业务关键升级期间:
- 将终止次要副本 Pod 并在新版本中重新预配
- 升级副本后,主副本会将故障转移到已升级的副本
- 以前的主 Pod 将终止并在新版本中重新预配,然后变为次要 Pod
发生故障转移时,有一个短暂的故障时间。
升级
要升级托管实例,请使用以下命令:
az sql mi-arc upgrade --resource-group <resource group> --name <instance name> --desired-version <imageTag> [--no-wait]
示例:
az sql mi-arc upgrade --resource-group myresource-group --name sql1 --desired-version v1.6.0_2022-05-02 [--no-wait]
监视
可以使用 CLI 监视升级进度。
CLI 示例
az sql mi-arc show --resource-group <resource group> --name <instance name>
输出
该命令的输出将显示资源信息。 升级信息将显示在“状态”中。
在升级过程中,State
将显示 Updating
,Running Version
将是当前版本:
Status:
Log Search Dashboard: https://30.88.222.48:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:sqlmi-1'))
Metrics Dashboard: https://30.88.221.32:3000/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=sqlmi-1-0
Observed Generation: 2
Primary Endpoint: 30.76.129.38,1433
Ready Replicas: 1/1
Running Version: v1.5.0_2022-04-05
State: Updating
升级完成后,State
将显示 Ready
,Running Version
将是新版本:
Status:
Log Search Dashboard: https://30.88.222.48:5601/app/kibana#/discover?_a=(query:(language:kuery,query:'custom_resource_name:sqlmi-1'))
Metrics Dashboard: https://30.88.221.32:3000/d/40q72HnGk/sql-managed-instance-metrics?var-hostname=sqlmi-1-0
Observed Generation: 2
Primary Endpoint: 30.76.129.38,1433
Ready Replicas: 1/1
Running Version: v1.6.0_2022-05-02
State: Ready
疑难解答
当所需版本设置为特定版本时,引导程序作业将尝试升级到该版本,直到它成功为止。 如果升级成功,则规范的 RunningVersion
属性将更新为新版本。 对于映像标记不正确、无法连接到注册表或存储库、分配给容器的 CPU 或内存不足或存储不足等情况,升级可能会失败。
运行以下命令,查看是否有任何 Pod 显示
Error
状态或具有较高重启次数:kubectl get pods --namespace <namespace>
若要查看事件以了解是否存在错误,请运行
kubectl describe pod <pod name> --namespace <namespace>
若要获取 Pod 中的容器列表,请运行
kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
若要获取容器的日志,请运行
kubectl logs <pod name> <container name> --namespace <namespace>
若要查看常见错误以及如何对其进行故障排除,请转到对资源进行故障排除。