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.
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>
Um sich Ereignisse anzusehen, um zu sehen, ob ein Fehler vorliegt, führen Sie Folgendes aus
kubectl describe pod <pod name> --namespace <namespace>
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}*'
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.