使用 CLI 來升級間接連線至 Azure Arc 的 Azure SQL 受控執行個體
本文說明如何使用 Azure CLI (az
),升級在間接連線的 Azure Arc 資料控制器上部署的 SQL 受控執行個體。
必要條件
安裝工具
繼續進行本文中的工作之前,請安裝:
arcdata
延伸模組版本與映像版本相關。 檢查您是否有正確的 arcdata
延伸模組版本,而此版本對應至版本記錄中您想要升級至的映像版本。
限制
必須先將 Azure Arc 資料控制器升級為新版本,才能升級受控執行個體。
如果已啟用 Active Directory 整合,則必須先將 Active Directory 連接器升級為新版本,才能升級受控執行個體。
升級資料控制器之前,受控執行個體必須具備與資料控制器和 Active Directory 連接器相同的版本。
目前沒有可用的批次升級程序。
升級受控執行個體
您可以先執行試執行。 試執行會驗證版本結構描述,並列出將升級的執行個體。
例如:
az sql mi-arc upgrade --name <instance name> --k8s-namespace <namespace> --dry-run --use-k8s
輸出將是:
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 會終止並以新版本重新佈建,並且變成次要
發生容錯移轉時,會有短暫的停機時間。
升級
若要升級受控執行個體,請使用下列命令:
az sql mi-arc upgrade --name <instance name> --desired-version <version> --k8s-namespace <namespace> --use-k8s
範例:
az sql mi-arc upgrade --name instance1 --desired-version v1.0.0.20211028 --k8s-namespace arc1 --use-k8s
監視器
CLI
您可以使用 show
命令來監視升級進度。
az sql mi-arc show --name <instance name> --k8s-namespace <namespace> --use-k8s
輸出
命令的輸出會顯示資源資訊。 升級資訊將會在 [狀態] 中顯示。
在升級期間,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.0.0_2021-07-30
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: <version-tag>
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>
若要檢視常見的錯誤以及如何進行疑難排解,請移至針對資源進行疑難排解。