Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Gilt für: SQL Server auf Azure-VMs
Zusammenfassung
SQL Server auf einer virtuellen Azure-Maschine (VM) kann möglicherweise nicht aus einem Azure Marketplace-Image bereitgestellt werden, wobei der Fehler „Das Systemlaufwerk meldete den Status ,Nicht zur Verwendung bereit.‘“ angezeigt wird. Eine manuell installierte SQL-Server-Instanz kann nach dem Neustart der VM oder nachdem deren Zuordnung aufgehoben wurde ebenfalls möglicherweise nicht gestartet werden. Diese Fehler treten auf, wenn SQL Server die tempdb Datenbank nicht im nicht verfügbaren lokalen kurzlebigen Speicher initialisieren kann. Dieser Artikel hilft Ihnen, diese Fehler zu beheben oder zu umgehen.
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:
{
"status": "Failed",
"error": {
"code": "Ext_StorageConfigurationSettings_ApplyNewTempDbSettingsError",
"message": "Error: 'System Drive returned status not ready for use '"
}
}
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 erneut bereit, indem Sie eine der in den Abschnitten "Lösung" oder "Problemumgehungen" beschriebenen Methoden verwenden.
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:
- Sie stellen einen virtuellen Azure-Computer aus der betroffenen VM-Liste bereit.
- Sie installieren eine Instanz von SQL Server manuell auf dem virtuellen Azure-Computer.
- Sie konfigurieren Ihre SQL Server-Datenbank
tempdbfür die Verwendung des lokalen SSD-kurzlebigen Speichers (in der Regel dasD:Laufwerk). - Der virtuelle Computer wird neu gestartet oder umgeleitet.
- 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:
- Stellen Sie Ihren SQL Server virtuellen Computer über das Azure-Portal auf Windows Server 2022 oder höher bereit.
- Skriptlösungen wie ARM- oder BICEP-Vorlagen lösen dieses Problem derzeit nicht.
- Windows Server 2019- und frühere Images sind von diesem Problem weiterhin betroffen.
- 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
dNamen, der sich auf demselben Speicher wie die SQL Server-Datendateien befindettempdb. Verwenden Sie z. B. dieFXmsv2VM-Größe anstelle vonFXmdsv2. Letzteres verwendet einen nicht-initialisierten, kurzlebigen Speicher, wie im Namen durchdangezeigt.
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 mithilfe eines Windows Server-only-Images bereit, verwenden Sie ein Skript zum Formatieren und Initialisieren des temporären NVMe-Laufwerks, und installieren Sie dann manuell SQL Server.
-
Wenn Sie sich dafür entscheiden,
tempdbauf der lokalen SSD zu platzieren, müssen Sie den Datenträger jedes Mal neu initialisieren, bevor Sie SQL Server starten, wenn die VM neu startet oder freigegeben wird.
-
Wenn Sie sich dafür entscheiden,
Stellen Sie das SQL Server-VM-Image bereit, konfigurieren Sie
tempdbjedoch so, dass ein anderes Laufwerk als der flüchtige Speicher während der Bereitstellung verwendet wird. Sie können z. B.tempdbso konfigurieren, dass es das Laufwerk oder das RemotespeicherlaufwerkC:verwendet.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.
Wählen Sie unter "Speicherkonfiguration" die Option " Konfiguration ändern " aus, um den Speicherbereich zu öffnen.
Erweitern Sie tempdb-Speicher , und wählen Sie eine andere Option als
Use local SSD drive:
Betroffene VMs
Dieses Problem tritt bei VMs auf, die ein nicht initialisiertes temporäres Laufwerk bereitstellen, z. B. die folgenden VM-Größen:
Hinweis
Stellen Sie vor der Installation SQL Server sicher, dass der virtuelle Computer nicht mit einer Sektorgröße von mehr als 4 KB konfiguriert ist.