共用方式為


使用 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 或記憶體不足,或儲存體不足。

  1. 執行下列命令,以查看是否有任何 Pod 顯示 Error 狀態或有大量重新啟動:

    kubectl get pods --namespace <namespace>
    
  2. 若要查看事件以了解是否發生錯誤,請執行

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. 若要取得 Pod 中的容器清單,請執行

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. 若要取得容器的記錄,請執行

    kubectl logs <pod name> <container name> --namespace <namespace>
    

若要檢視常見的錯誤以及如何進行疑難排解,請移至針對資源進行疑難排解