Partager via


SQL Server sur une machine virtuelle Azure ne parvient pas à déployer ou l’instance SQL Server ne parvient pas à se mettre en ligne

Cet article vous aide à résoudre les scénarios suivants :

  • Une image de la Place de marché Azure SQL Server sur une machine virtuelle Azure ne parvient pas à être déployée.
  • Une instance SQL Server ne parvient pas à être mise en ligne une fois qu’une machine virtuelle Azure est redémarrée ou désallouée.

S’applique à : SQL Server sur des machines virtuelles Azure

Remarque

L’enquête sur ce problème est en cours. Les informations contenues dans cet article sont susceptibles de changer à mesure que de nouveaux détails deviennent disponibles.

Symptômes

Si vous rencontrez ce problème, vous verrez probablement :

  • Échec des déploiements de SQL Server sur des machines virtuelles Azure lors de l’utilisation d’une image de la Place de marché Azure.
  • SQL Server ne parvient pas à être mis en ligne une fois qu’une machine virtuelle Azure est redémarrée pour les instances installées manuellement de SQL Server.

Échec du déploiement de SQL Server sur une machine virtuelle Azure

Lorsque vous essayez de déployer une image de machine virtuelle SQL Server sur Azure à partir de la Place de marché Azure, le déploiement échoue avec un état Conflict et l’erreur suivante :

L’état retourné par le lecteur système n’est pas prêt à être utilisé.

Par exemple, si vous déployez une image à partir du portail Azure, vous pouvez voir l’erreur suivante pour le déploiement dans le journal d’activité :

Capture d’écran de l’erreur de déploiement dans le portail Azure.

Avertissement

Lorsque cette défaillance se produit, le déploiement de machine virtuelle Azure réussit, mais l’installation de SQL Server échoue. Vous devez supprimer la machine virtuelle pour éviter les frais. Redéployez la machine virtuelle à l’aide de l’une des méthodes décrites dans les sections Résolution ou Solution de contournement .

SQL Server ne parvient pas à être en ligne une fois la machine virtuelle redémarrée

Vous pouvez voir ce problème après avoir suivi cette séquence d’événements :

  1. Vous déployez une machine virtuelle Azure à partir de la liste des machines virtuelles concernées .
  2. Vous installez manuellement une instance de SQL Server sur la machine virtuelle Azure.
  3. Vous configurez votre base de données SQL Server tempdb pour utiliser le stockage éphémère SSD local (généralement, le D: lecteur).
  4. Votre machine virtuelle se redémarre ou se désalloue.
  5. Votre instance SQL Server ne parvient pas à être mise en ligne.

Si vous rencontrez ce problème, vous pouvez voir l’erreur suivante dans le journal des erreurs SQL Server :

CREATE FILE encountered operating system error 3(The system cannot find the path specified.) 
while attempting to open or create the physical file 'D:\SQLTemp\tempdb.mdf'.
Error: 17204, Severity: 16, State: 1. FCB::Open failed: Could not open 
file D:\SQLTemp\tempdb.mdf for file number 1. OS error: 
3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "D:\SQLTemp\tempdb.mdf". Operating system error 3:
"3(The system cannot find the path specified.)".
Error: 1802, Severity: 16, State: 4 CREATE DATABASE failed. 
Some file names listed could not be created. Check related errors.
Could not create tempdb. You may not have enough disk space available.
Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. 
Check for additional errors in the event log that may indicate why the 
tempdb files could not be initialized.

La cause

Certaines des plus récentes tailles de machine virtuelle Azure présentent un volume SSD local RAW pour le stockage éphémère configuré avec l’interface NVMe (Non Volatile Memory Express). Cette configuration entraîne des échecs, car SQL Server tente de placer la tempdb base de données sur le stockage éphémère et échoue à mesure que le volume SSD local n’est pas disponible. En outre, le stockage éphémère apparaît comme RAW une fois la machine libérée.

Le volume SSD local RAW provoque l’échec du déploiement de la machine virtuelle SQL et empêche l’installation manuelle des instances SQL Server après le redémarrage de la machine virtuelle. Dans les deux cas, SQL Server tente d’initialiser la tempdb base de données sur le stockage éphémère, qui n’est pas disponible. Le déploiement échoue, car SQL Server est installé pendant le déploiement de la machine virtuelle Azure et le stockage éphémère n’est pas disponible. De même, les instances installées manuellement de SQL Server ne sont pas en ligne après le redémarrage de la machine virtuelle, car le stockage éphémère n’est pas disponible lorsque SQL Server tente de créer la tempdb base de données.

Résolution

Ce problème se produit en raison de la taille de machine virtuelle Azure sélectionnée. Pour résoudre le problème, utilisez l’une des méthodes suivantes :

  • Si possible, utilisez une autre référence SKU de machine virtuelle, telle que les références SKU répertoriées dans les meilleures pratiques de taille de machine virtuelle.
  • Si vous souhaitez utiliser une machine virtuelle particulière qui se trouve sur la liste des machines virtuelles affectées , utilisez une machine sans la minuscule d dans le nom, qui place tempdb sur le même stockage que les fichiers de données SQL Server. Par exemple, utilisez la taille de machine FXmsv2 virtuelle au lieu de FXmdsv2. Ce dernier utilise un stockage éphémère non initialisé, comme indiqué dans le nom d.

Contournement

Si vous ne pouvez pas utiliser une autre catégorie de machine virtuelle SKU sans un SSD local brut, tenez compte des solutions de contournement suivantes :

  • Déployez la machine virtuelle à l’aide d’une image Windows Server uniquement, formatez et initialisez le lecteur NVMe temporaire, puis installez manuellement SQL Server.

    • Si vous choisissez d’activer tempdb le disque SSD local, vous devez réinitialiser le disque avant de démarrer SQL Server chaque fois que la machine virtuelle est redémarrée ou désallouée.
  • Déployez l’image de machine virtuelle SQL Server, mais configurez tempdb pour utiliser un lecteur différent du stockage éphémère pendant le déploiement. Par exemple, vous pouvez configurer tempdb pour utiliser le C: lecteur ou le lecteur de stockage distant.

    1. Vous pouvez configurer ce paramètre sur la page des paramètres SQL Server dans le portail Azure lors du déploiement de l’image de machine virtuelle SQL Server.

    2. Sous Configuration du stockage, sélectionnez Modifier la configuration pour ouvrir le volet Configurer le stockage .

    3. Développez le stockage tempdb et choisissez n’importe quelle option autre queUse local SSD drive :

      Capture d’écran de la configuration de stockage tempdb dans le portail Azure lors du déploiement d’une image de machine virtuelle SQL.

Machines virtuelles impactées

Ce problème se produit avec les machines virtuelles qui déploient un lecteur temporaire non initialisé, comme les tailles de machine virtuelle suivantes :

Intel Gen 10.2 AMD Gen 9.1
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 - Toutes les machines virtuelles Azure
Fxmdsv2

Remarque

Vérifiez que la machine virtuelle n’est pas configurée à l’aide d’une taille de secteur supérieure à 4 Ko avant d’installer SQL Server.