Partager via


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

Cet article explique comment mettre à niveau Azure SQL Managed Instance déployé sur un contrôleur de données avec Azure Arc connecté directement à 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

Vous pouvez effectuer d’abord un test. L’exécution test valide le schéma de version et répertorie les instances à mettre à niveau. Utiliser --dry-run. Par exemple :

az sql mi-arc upgrade --resource-group <resource group> --name <instance name> --dry-run 

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 --resource-group <resource group> --name <instance name> --desired-version <imageTag> [--no-wait]

Exemple :

az sql mi-arc upgrade --resource-group myresource-group --name sql1 --desired-version v1.6.0_2022-05-02 [--no-wait]

Monitor

Vous pouvez surveiller la progression de la mise à niveau à l’aide de l’interface CLI.

Exemple avec l’interface CLI

az sql mi-arc show --resource-group <resource group> --name <instance name>

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.5.0_2022-04-05
  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:       v1.6.0_2022-05-02
  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.