Partager via


Mettre à niveau Azure SQL Managed Instance connecté indirectement à Azure Arc à l’aide de l’interface CLI

Cet article explique comment mettre à niveau une instance gérée SQL déployée sur un contrôleur de données avec Azure Arc connecté indirectement à l’aide de l’interface de ligne de commande Azure (az).

Prérequis

Installer des outils

Avant de pouvoir effectuer les tâches de cet article, installez :

La version de l’extension arcdata et la version de l’image sont associées. Vérifiez que vous disposez de la version d’extension correcte arcdata qui correspond à la version d’image vers laquelle vous souhaitez effectuer une mise à niveau dans le journal des versions.

Limites

Le contrôleur de données Azure Arc doit être mis à niveau vers la nouvelle version avant de pouvoir mettre à niveau l’instance gérée.

Si l’intégration d’Active Directory est activée, le connecteur Active Directory doit être mis à niveau vers la nouvelle version avant que l’instance managée puisse être mise à niveau.

L’instance gérée doit être à la même version que le contrôleur de données et le connecteur Active Directory avant la mise à niveau d’un contrôleur de données.

Aucun processus de mise à niveau par lots n’est disponible pour l’instant.

Mettre à niveau l’instance gérée

Une test peut d’abord être exécuté. L’exécution test valide le schéma de version et répertorie les instances à mettre à niveau.

Par exemple :

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

La sortie se présente comme suit :

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

Usage général

Lors d'une mise à niveau générale de SQL Managed Instance, le pod sera interrompu et reprovisionné à la nouvelle version. Cela entraîne un court temps d’arrêt pendant la création du nouveau pod. Vous devrez intégrer la résilience dans votre application, telle que la logique de nouvelle tentative de connexion, pour garantir une interruption minimale. Pour plus d’informations sur l’architecture de la résilience, lisez Vue d’ensemble du pilier de fiabilité et Guide du mécanisme de nouvelle tentative relatif aux services Azure.

Critique pour l’entreprise

Pendant une mise à niveau de SQL Managed Instance critique pour l'entreprise avec plusieurs réplicas :

  • Les pods de réplica secondaire sont arrêtés et reprovisionnés à la nouvelle version
  • Une fois les réplicas mis à niveau, le réplica principal bascule vers un réplica mis à niveau
  • Le pod principal précédent est arrêté et reprovisionné à la nouvelle version, et devient un pod secondaire

Il y a un bref moment de temps d’arrêt lorsque le basculement se produit.

Mettre à jour

Pour mettre à niveau une instance gérée, utilisez la commande suivante :

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

Exemple :

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

Monitor

Interface de ligne de commande

Vous pouvez surveiller la progression de la mise à niveau à l’aide de la commande show.

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

Sortie

La sortie de la commande affiche les informations sur les ressources. Les informations de mise à niveau seront dans État.

Pendant la mise à niveau, State affiche Updating et Running Version correspond à la version actuelle :

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

Une fois la mise à niveau terminée, State affiche Ready et Running Version correspond à la nouvelle 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

Dépannage

Lorsque la version souhaitée est définie sur une version spécifique, le travail de démarrage tente de procéder à la mise à niveau vers cette version jusqu’à ce qu’elle réussisse. Si la mise à niveau réussit, la propriété RunningVersion de la spécification est mise à jour vers la nouvelle version. Les mises à niveau peuvent échouer dans des scénarios comme une balise d’image incorrecte, l’impossibilité de se connecter au registre ou au référentiel, une quantité de processeur ou de mémoire insuffisante allouée aux conteneurs ou un stockage insuffisant.

  1. Exécutez la commande ci-dessous pour voir si l’un des pods présente un statut Error ou présente un nombre élevé de redémarrages :

    kubectl get pods --namespace <namespace>
    
  2. Pour examiner les événements pour voir s’il existe une erreur, exécutez

    kubectl describe pod <pod name> --namespace <namespace>
    
  3. Pour obtenir la liste des conteneurs dans les pods, exécutez

    kubectl get pods <pod name> --namespace <namespace> -o jsonpath='{.spec.containers[*].name}*'
    
  4. Pour obtenir les journaux d’un conteneur, exécutez

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

Pour afficher les erreurs courantes et la façon de les résoudre, accédez aux Ressources de dépannage.