Freigeben über


SQL Server auf Azure VM kann nicht bereitgestellt werden, oder SQL Server-Instanz kann nicht online bereitgestellt werden

Mithilfe dieses Artikels können Sie die folgenden Szenarien lösen:

  • Ein SQL Server auf einer Azure Virtual Machine (VM) Azure Marketplace-Image kann nicht bereitgestellt werden.
  • Eine SQL Server-Instanz kann nicht online ausgeführt werden, nachdem eine Azure-VM neu gestartet oder zugeordnet wurde.

Gilt für: SQL Server auf Azure-VMs

Hinweis

Die Untersuchung dieses Problems wird aktiv fortgesetzt. Die Informationen in diesem Artikel können geändert werden, wenn neue Details verfügbar sind.

Symptome

Wenn dieses Problem auftritt, wird wahrscheinlich Folgendes angezeigt:

  • SQL Server-Bereitstellungen auf Azure-VMs schlagen fehl, wenn ein Azure Marketplace-Image verwendet wird.
  • SQL Server kann nicht online sein, nachdem eine Azure-VM für manuell installierte Instanzen von SQL Server neu gestartet wurde.

Sql Server auf Azure VM-Bereitstellung schlägt fehl

Wenn Sie versuchen, ein SQL Server auf azure VM-Image aus Azure Marketplace bereitzustellen, schlägt die Bereitstellung mit einem Status von Conflict und dem folgenden Fehler fehl:

Der Status des Systemlaufwerks zeigt an, dass es nicht einsatzbereit ist.

Wenn Sie beispielsweise ein Image aus dem Azure-Portal bereitstellen, wird möglicherweise der folgende Fehler für die Bereitstellung im Aktivitätsprotokoll angezeigt:

Screenshot des Bereitstellungsfehlers im Azure-Portal.

Warnung

Wenn dieser Fehler auftritt, ist die Azure VM-Bereitstellung erfolgreich, die SQL Server-Installation schlägt jedoch fehl. Sie müssen den virtuellen Computer löschen, um Gebühren zu vermeiden. Stellen Sie den virtuellen Computer mithilfe einer der in den Abschnitten "Lösung" oder "Problemumgehungen" beschriebenen Methoden erneut bereit.

SQL Server kann nicht online sein, nachdem der virtuelle Computer neu gestartet wurde.

Möglicherweise tritt dieses Problem nach der folgenden Reihenfolge von Ereignissen auf:

  1. Sie stellen einen virtuellen Azure-Computer aus der betroffenen VM-Liste bereit.
  2. Sie installieren eine Instanz von SQL Server manuell auf dem virtuellen Azure-Computer.
  3. Sie konfigurieren Ihre SQL Server-Datenbank tempdb für die Verwendung des lokalen SSD-kurzlebigen Speichers (in der Regel das D: Laufwerk).
  4. Der virtuelle Computer wird neu gestartet oder umgeleitet.
  5. Ihre SQL Server-Instanz kann nicht online ausgeführt werden.

Wenn dieses Problem auftritt, wird möglicherweise der folgende Fehler im SQL Server-Fehlerprotokoll angezeigt:

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.

Ursache

Einige der neuesten Azure-VM-Größen stellen ein lokales RAW-SSD-Volume für kurzlebigen Speicher dar, der mit der Nicht-Volatile Memory Express (NVMe)-Schnittstelle konfiguriert ist. Diese Konfiguration führt zu Fehlern, da SQL Server versucht, die tempdb Datenbank im kurzlebigen Speicher zu platzieren und fehlschlägt, da das lokale SSD-Volume nicht verfügbar ist. Darüber hinaus wird der kurzlebige Speicher als RAW angezeigt, nachdem der Computer umgelagert wurde.

Das lokale RAW-SSD-Volume führt dazu, dass die SQL-VM-Bereitstellung fehlschlägt und verhindert, dass manuell installierte SQL Server-Instanzen online sind, nachdem die VM neu gestartet wurde. In beiden Fällen versucht SQL Server, die tempdb Datenbank im kurzlebigen Speicher zu initialisieren, was nicht verfügbar ist. Die Bereitstellung schlägt fehl, da SQL Server während der Bereitstellung der Azure-VM installiert wird und der kurzlebige Speicher nicht verfügbar ist. Ebenso können manuell installierte Instanzen von SQL Server nicht online gestellt werden, nachdem der virtuelle Computer neu gestartet wurde, da der kurzlebige Speicher nicht verfügbar ist, wenn SQL Server versucht, die tempdb Datenbank zu erstellen.

Beschluss

Dieses Problem tritt aufgrund der ausgewählten Größe des virtuellen Azure-Computers auf. Verwenden Sie eine der folgenden Methoden, um das Problem zu beheben:

  • Verwenden Sie nach Möglichkeit eine andere VM-SKU, z. B. die in den bewährten Methoden für die GRÖßE des virtuellen Computers aufgeführten SKUs.
  • Wenn Sie einen bestimmten virtuellen Computer verwenden möchten, der sich auf der Liste der betroffenen virtuellen Computer befindet, verwenden Sie einen Computer ohne kleingeschriebenen d Namen, der sich auf demselben Speicher wie die SQL Server-Datendateien befindet tempdb . Verwenden Sie z. B. die FXmsv2 VM-Größe anstelle von FXmdsv2. Letzteres verwendet einen nicht-initialisierten, kurzlebigen Speicher, wie im Namen durch d angezeigt.

Zwischenlösung

Sollten Sie keine andere VM-SKU ohne lokale RAW-SSD nutzen können, ziehen Sie die folgenden Lösungen in Betracht:

  • Stellen Sie den virtuellen Computer mit einem Nur-Windows Server-Image bereit, formatieren und initialisieren Sie das temporäre NVMe-Laufwerk, und installieren Sie dann SQL Server manuell.

    • Wenn Sie sich dafür entscheiden, tempdb auf der lokalen SSD zu speichern, müssen Sie den Datenträger erneut initialisieren, bevor Sie SQL Server starten, und zwar jedes Mal, wenn die VM neu gestartet oder freigegeben wird.
  • Stellen Sie das SQL Server-VM-Image bereit, konfigurieren Sie tempdb jedoch so, dass ein anderes Laufwerk als der flüchtige Speicher während der Bereitstellung verwendet wird. Sie können z. B. tempdb so konfigurieren, dass es das Laufwerk oder das Remotespeicherlaufwerk C: verwendet.

    1. Sie können diese Einstellung auf der Seite mit den SQL Server-Einstellungen im Azure-Portal konfigurieren, wenn Sie das SQL Server-VM-Image bereitstellen.

    2. Wählen Sie unter "Speicherkonfiguration" die Option " Konfiguration ändern " aus, um den Speicherbereich zu öffnen.

    3. Erweitern Sie tempdb-Speicher , und wählen Sie eine andere Option alsUse local SSD drive:

      Screenshot der tempdb-Speicherkonfiguration im Azure-Portal beim Bereitstellen eines SQL-VM-Images.

Betroffene VMs

Dieses Problem tritt bei VMs auf, die ein nicht initialisiertes temporäres Laufwerk bereitstellen, z. B. die folgenden VM-Größen:

Intel Gen 10.2 AMD Gen 9.1
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 – Alle Azure-VMs
Fxmdsv2

Hinweis

Stellen Sie sicher, dass die VM nicht mit einer Sektorgröße von mehr als 4 KB konfiguriert ist, bevor Sie SQL Server installieren.