Fehler bei der SQL Server-Installation aufgrund eines Sektorgrößenfehlers auf einer Windows Server Azure-VM

Gilt für: SQL Server, SQL Server auf Azure VM – Windows

Zusammenfassung

Dieser Artikel hilft Ihnen, ein Problem zu beheben, das auftritt, wenn Sie eine SQL Server Instanz manuell auf einem Microsoft Azure virtuellen Computer (VM) installieren, der Windows ausgeführt wird. Wenn Sie SQL Server auf einer Azure VM installieren, die einen NVMe-Datenträger mit einer systemeigenen Sektorgröße verwendet, die größer als 4 KB ist, schlägt das Setup fehl, da SQL Server Datendateien wie auf master.mdf einem Volume mit einer Größe von 8 KB nicht gehostet werden können. In diesem Artikel wird erläutert, warum es bei neueren Azure-VM-Serien zu einer Nichtübereinstimmung der Sektorgröße kommt und wie eine 4-KB-Sektorgröße erzwungen werden kann, damit die Installation von SQL Server auf dem Datenträger erfolgreich durchgeführt werden kann.

Symptome

Wenn Sie eine SQL Server Instanz auf einer Azure VM installieren, die Windows ausgeführt wird, schlägt die Installation fehl, und das SQL Server Fehlerprotokoll zeigt die folgende Meldung an, wenn das Modul versucht, zu starten:

Die Datei "...\master.mdf" kann nicht verwendet werden, da sie ursprünglich mit der Sektorgröße 4096 formatiert wurde und sich jetzt auf einem Volumen mit der Sektorgröße 8192 befindet. Verschieben Sie die Datei auf einen Datenträger mit derselben oder einer kleineren Sektorgröße als der ursprünglichen.

Die Summary.txt Protokolldatei im SQL Server Setupordner zeigt auch Einträge wie die folgenden an:

Detailed results:
  Feature:                       Database Engine Services
  Status:                        Failed
  Reason for failure:            An error occurred during the setup process of the feature.
  Next Step:                     Use the following information to resolve the error, uninstall this feature, and then run the setup process again.
  Component name:                SQL Server Database Engine Services Instance Features
  Component error code:          0x851A0019
  Error description:             Could not find the Database Engine startup handle.

Dieses Problem kann bei lokalen Installationen auftreten, sie wird jedoch wahrscheinlicher angezeigt, wenn Sie SQL Server auf einem Azure virtuellen Computer installieren.

Ursache

Dieses Problem tritt aufgrund der Sektorgröße des Datenträgers auf einigen Azure VM-Größen auf. Neuere Azure VM-Serie wie Dadsv6, Eadsv6 und Fasv6 verwenden eine NVMe-only-Speicherschnittstelle und erfordern ein Betriebssystemimage, das NVMe unterstützt. Diese VM-Serie macht Datenträger mit einer standardeigenen Sektorgröße von 8 KB verfügbar, die SQL Server für Datenbankdateien nicht unterstützt. SQL Server unterstützt Datenträger mit nativen Sektorgrößen von 512 Byte und 4 KB. Wenn eine Azure VM mit einer Größe von 8 KB bereitgestellt wird und Sie dann SQL Server installieren, kann die Installation fehlschlagen. Weitere Informationen finden Sie unter "Speichertypen für SQL Server".

Hinweis

Dieses Szenario gilt nur, wenn Sie SQL Server manuell auf einer Azure VM installieren. Sie gilt nicht, wenn Sie ein SQL Server VM-Image aus Azure Marketplace bereitstellen, da diese Images vorkonfiguriert sind, um eine Größe des 4-KB-Sektors zu verwenden.

Betroffene Datenträger- und VM-Typen

Die Nichtübereinstimmung der Sektorgröße tritt am häufigsten in folgenden Szenarien auf:

  • Lokale NVMe-Datenträger auf VM-Serien der Version 6 (z. B. Dadsv6, Eadsv6, Easv6 und Fasv6), die eine native Sektorgröße von 8 KB bereitstellen.
  • Premium SSD v2 und Ultra Disk , wenn Sie den Datenträger mit einer logischen Sektorgröße von 4096 Byte erstellen, aber über einen Host präsentieren, der eine Größe des physischen 8-KB-Sektors meldet.

Standard-HDD-, Standard-SSD- und Premium-SSD(v1)-Datenträger, die Sie an frühere VM-Serien anfügen, stellen in der Regel eine Größe des 4-KB-Sektors dar und sind davon nicht betroffen.

Lösung

Um dieses Problem zu beheben, erzwingen Sie die Azure VM, eine Größe des 4-KB-Sektors zu verwenden, und installieren Sie dann SQL Server erneut.

  1. Wenn SQL Server bereits installiert ist, deinstallieren Sie sie. Fahren Sie andernfalls mit dem nächsten Schritt fort.

  2. Fügen Sie den Registrierungsschlüssel "ForcedPhysicalSectorSizeInBytes " hinzu.

  3. Überprüfen Sie, ob die Sektorgröße 4 KB beträgt, indem Sie den folgenden Befehl in einer Eingabeaufforderung mit Administratorrechten ausführen:

    fsutil fsinfo sectorinfo <volume pathname>
    
  4. Starten Sie den virtuellen Azure-Computer neu.

  5. Installieren Sie SQL Server erneut.

Der folgende Screenshot zeigt die Ausgabe des Befehls fsutil fsinfo sectorinfo für das Laufwerk E:, das eine Sektorgröße von 8 KB hat:

Screenshot der Ausgabe der Eingabeaufforderung mit 8-KB-Sektorgröße.

Der folgende Screenshot zeigt die Ausgabe desselben Befehls für das E: Laufwerk, nachdem der Registrierungsschlüssel hinzugefügt wurde, um eine Größe des 4-KB-Sektors zu verwenden:

Screenshot der Ausgabe der Eingabeaufforderung mit einer Sektorgröße von 4 KB.

Der ForcedPhysicalSectorSizeInBytes Registrierungsschlüssel ist eine Einstellung auf Betriebssystemebene. Alle Laufwerke, die derzeit angeschlossen sind, und alle Laufwerke, die später angeschlossen werden, verwenden eine Sektorgröße von 4 KB, bis Sie diesen Registrierungsschlüssel entfernen.