Freigeben über


Upgrade einer indirekt mit Azure Arc verbundene Azure SQL Managed Instance-Instanz über die CLI

In diesem Artikel wird beschrieben, wie Sie eine SQL Managed Instance-Instanz, die auf einem indirekt verbundenen Datencontroller mit Azure Arc-Unterstützung bereitgestellt wurde, mithilfe der Azure CLI (az) aktualisieren.

Voraussetzungen

Installieren von Tools

Um die Aufgaben in diesem Artikel ausführen zu können, müssen Sie Folgendes installieren:

Die Version der arcdata-Erweiterung und die Imageversion stehen zueinander in Beziehung. Überprüfen Sie anhand des Versionsprotokolls, ob Sie über die richtige Version der arcdata-Erweiterung verfügen, die der Imageversion entspricht, auf die Sie ein Upgrade durchführen möchten.

Begrenzungen

Der Azure Arc-Datencontroller muss auf die neue Version aktualisiert werden, bevor ein Upgrade für die verwaltete Instanz durchgeführt werden kann.

Wenn die Active Directory-Integration aktiviert ist, muss der Active Directory-Connector auf die neue Version aktualisiert werden, bevor die verwaltete Instanz aktualisiert werden kann.

Die verwaltete Instanz muss dieselbe Version wie der Datencontroller und der Active Directory-Connector aufweisen, bevor der Datencontroller aktualisiert werden kann.

Zurzeit ist kein Prozess für ein Batchupgrade verfügbar.

Aktualisieren der verwalteten Instanz

Zunächst kann ein Testlauf durchgeführt werden. Beim Testlauf wird das Versionsschema überprüft, und es erfolgt eine Auflistung, welche Instanzen aktualisiert werden.

Beispiel:

az sql mi-arc upgrade --name <instance name> --k8s-namespace <namespace> --dry-run --use-k8s

Ausgabe:

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>.

Allgemeiner Zweck

Während eines Upgrades von SQL Managed Instance Universell wird der Pod beendet und mit der neuen Version erneut bereitgestellt. Dies führt zu einer kurzen Downtime, wenn der neue Pod erstellt wird. Sie müssen Resilienz in Ihre Anwendung integrieren, z. B. Wiederholungslogik für Verbindungen, um eine minimale Unterbrechung zu gewährleisten. Lesen Sie Übersicht über die Zuverlässigkeitssäule für weitere Informationen zur Architektur der Ausfallsicherheit und die Wiederholungsanleitung für Azure-Dienste.

Unternehmenskritisch

Während eines Upgrades von SQL Managed Instance Unternehmenskritisch mit mehreren Replikaten geschieht Folgendes:

  • Die Pods mit sekundären Replikaten werden beendet und mit der neuen Version erneut bereitgestellt.
  • Nachdem ein Upgrade der Replikate durchgeführt wurde, erfolgt ein Failover auf eines der aktualisierten Replikat.
  • Der vormals primäre Pod wird beendet und mit der neuen Version erneut bereitgestellt. Außerdem wird er auf ein sekundäres Replikat herabgestuft.

Während des Failovers gibt es eine kurze Downtime.

Upgraden

Führen Sie zum Upgraden der verwalteten Instanz den folgenden Befehl aus:

az sql mi-arc upgrade --name <instance name> --desired-version <version> --k8s-namespace <namespace> --use-k8s

Beispiel:

az sql mi-arc upgrade --name instance1 --desired-version v1.0.0.20211028 --k8s-namespace arc1 --use-k8s

Monitor

Befehlszeilenschnittstelle (CLI)

Sie können den Fortschritt des Upgrades mit dem Befehl show überwachen.

az sql mi-arc show --name <instance name> --k8s-namespace <namespace> --use-k8s

Output

Die Ausgabe für den Befehl zeigt die Ressourceninformationen an. Die Upgradeinformationen werden unter Status angezeigt.

Während des Upgrades zeigt State Updating an und Running Version ist die aktuelle 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

Nach Abschluss des Upgrades zeigt State Ready an und Running Version ist die neue 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

Problembehandlung

Wenn die gewünschte Version auf eine bestimmte Version festgelegt ist, versucht der Bootstrapperauftrag solange ein Upgrade darauf durchzuführen, bis er erfolgreich ist. Wenn das Upgrade erfolgreich ist, wird die Eigenschaft RunningVersion der Spezifikation auf die neue Version aktualisiert. Bei Upgrades können Fehler auftreten, wenn z. B. das Imagetag falsch ist, keine Verbindung mit der Registrierung oder dem Repository hergestellt werden kann, den Containern nicht genügend CPU oder Arbeitsspeicher zugewiesen ist oder der Speicherplatz nicht ausreicht.

  1. Führen Sie den folgenden Befehl aus, um festzustellen, ob einer der Pods den Status Error anzeigt oder eine hohe Anzahl von Neustarts aufweist:

    kubectl get pods --namespace <namespace>
    
  2. Um sich Ereignisse anzusehen, um zu sehen, ob ein Fehler vorliegt, führen Sie Folgendes aus

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Führen Sie zum Abrufen einer Liste der Container in den Pods aus

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Um die Protokolle für einen Container zu erhalten, führen Sie Folgendes aus

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

Um häufige Fehler zu sehen und zu erfahren, wie Sie diese beheben können, gehen Sie zu Ressourcen zur Problembehandlung.