Freigeben über


Behebung von Fehlern im Zusammenhang mit einer Systemdatenträgersektorgröße, die größer als 4 KB ist

Dieser Artikel enthält Lösungen für die Problembehandlung von Fehlern während der Installation oder beim Starten einer Instanz von SQL Server unter Windows. Dieser Artikel ist für alle veröffentlichten Versionen von SQL Server gültig.

In diesem Artikel werden Fehler im Zusammenhang mit der Größe des Systemdatenträgersektors behandelt, die größer als 4 KB sind. Wenn Sie versuchen, eine SQL Server-Instanz auf einem Computer zu installieren, auf dem die Größe des Systemdatenträgersektors größer als 4 KB ist, können die folgenden Szenarien auftreten:

Gilt für: SQL Server alle Versionen

Szenario 1: Verschieben der Datei auf ein Volume mit einer kompatiblen Sektorgröße

Wenn Sie versuchen, die Sektorgröße größer als 4 KB zu verwenden, wird die folgende Fehlermeldung angezeigt:

Error: 5179, Severity: 16, State: 1.
Cannot use file 'data file path', because it is on a volume with sector size 8192. SQL Server supports a maximum sector size of 4096 bytes. Move the file to a volume with a compatible sector size.

Szenario 2: Das Starthandle des Datenbankmoduls konnte nicht gefunden werden.

Wenn Sie versuchen, eine SQL Server-Instanz auf einem virtuellen Azure-Computer (VM) unter Windows zu installieren, schlägt die Installation fehl, und Sie erhalten die folgende Fehlermeldung im SQL Server-Fehlerprotokoll, wenn das Modul versucht, während der Installation 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 ein Volume mit einer Sektorgröße, die der Original-Sektorgröße entspricht oder kleiner ist.

Darüber hinaus werden die folgenden Informationen in der Summary.txt Protokolldatei im SQL Server-Setupordner angezeigt:

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.

Weitere Informationen finden Sie unter SQL Server-Installation schlägt aufgrund eines Sektorgrößenfehlers auf einer Azure-VM mit Windows Server 2022 fehl.

Szenario 3: Warten auf das Wiederherstellungs-Handle des Datenbankmoduls fehlgeschlagen

Wenn Sie eine Version von SQL Server installieren, werden Fehler angezeigt, die der folgenden Meldung für die Datenbankmoduldienste-Komponente von SQL Server ähneln:

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: 0x851A001A 
Error description: Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes. 

Oder sie sehen die folgenden Fehler im SQL Server-Fehlerprotokoll:

2025-02-26 20:01:16.79 spid14s     Starting up database 'master'.
2025-02-26 20:01:16.80 spid14s     Error: 5178, Severity: 16, State: 1.
2025-02-26 20:01:16.80 spid14s     Cannot use file 'C:\Program Files\Microsoft SQL Server\MSSQL16.MSSQLSERVER\MSSQL\DATA\master.mdf' because it was originally formatted with sector size 4096 and is now on a volume with sector size 8192. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.

Szenario 4: Es gab 256 falsch ausgerichtete Protokoll-IOs, die erforderlich waren, auf synchrone E/A zurückzufallen

Sie installieren eine beliebige Version von SQL Server auf einem Windows 10-Gerät. Anschließend aktualisieren Sie das Betriebssystem (Os) auf dem Gerät auf Windows 11. Wenn Sie versuchen, SQL Server auf einem Windows 11-Gerät zu starten, kann der Dienst nicht gestartet werden. Im SQL Server-Fehlerprotokoll sehen Sie die folgenden Einträge:

2021-11-05 23:42:47.14 spid9s There have been 256 misaligned log IOs which required falling back to synchronous IO. The current IO is on file C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\DATA\master.mdf. 

Szenario 5

Sie installieren eine beliebige Version von SQL Server auf einem Windows 10-Gerät. Anschließend aktualisieren Sie das Betriebssystem auf dem Gerät auf Windows 11. Wenn Sie versuchen, SQL Server auf einem Windows 11-Gerät zu starten, kann der Dienst nicht gestartet werden. Im SQL Server-Fehlerprotokoll sehen Sie die folgenden Einträge:

Faulting application name: sqlservr.exe, version: 2019.150.2000.5, time stamp: 0x5d8a9215 
Faulting module name: ntdll.dll, version: 10.0.22000.120, time stamp: 0x50702a8c 
Exception code: 0xc0000005 
Fault offset: 0x00000000000357ae 
Faulting process id: 0x1124 
Faulting application start time: 0x01d7bf67449d262c
Faulting application path: C:\Program Files\Microsoft SQL Server\MSSQL15.MSSQLSERVER\MSSQL\Binn\sqlservr.exe 
Faulting module path: C:\Windows\SYSTEM32\ntdll.dll 

Szenario 6: Verschieben der Datei auf ein Volume mit einer Sektorgröße, die der ursprünglichen Sektorgröße entspricht oder kleiner als die ursprüngliche Sektorgröße ist

Sie installieren LocalDB auf einem Windows 11-Gerät, und das Setup schlägt fehl. Im SQL Server-Fehlerprotokoll sehen Sie die folgenden Einträge:

2021-12-15 23:25:04.28 spid5s      Cannot use file 'C:\Users\Administrator\AppData\Local\Microsoft\Microsoft SQL Server Local DB\Instances\TestInstance\master.mdf' because it was originally formatted with sector size 4096 and is now on a volume with sector size 16384. Move the file to a volume with a sector size that is the same as or smaller than the original sector size.

Im Ereignisprotokoll der Windows 11-Anwendung sehen Sie die folgenden Einträge:

Message            : Windows API call WaitForMultipleObjects returned error code: 575. Windows system error message is: {Application Error}
                     The application was unable to start correctly (0x%lx). Click OK to close the application.
                     Reported at line: 3621.
Source             : SQLLocalDB 11.0

Hinweis

Möglicherweise treten die in den vorherigen Szenarien erwähnten Fehler für eine SQL Server-Instanz auf, die Sie manuell oder auf einer von Anwendungen installierten LocalDB-Instanz installiert haben.

Ursache

Während des Dienststarts beginnt SQL Server mit dem Datenbankwiederherstellungsprozess, um die Datenbankkonsistenz sicherzustellen. Ein Teil dieses Datenbankwiederherstellungsprozesses umfasst Konsistenzüberprüfungen des zugrunde liegenden Dateisystems, bevor Sie versuchen, System- und Benutzerdatenbankdateien zu öffnen.

Einige neue Speichergeräte und Gerätetreiber machen eine Datenträgersektorgröße größer als die unterstützte Größe des 4-KB-Sektors verfügbar.

Wenn dieses Problem auftritt, kann SQL Server aufgrund des nicht unterstützten Dateisystems nicht gestartet werden, da SQL Server derzeit Sektorspeichergrößen von 512 Bytes und 4 KB unterstützt.

Sie können bestätigen, dass dieses bestimmte Problem auftritt, indem Sie den Befehl ausführen:

fsutil fsinfo sectorinfo <volume pathname>

Um z. B. das Volume E: zu analysieren, führen Sie den folgenden Befehl aus:

fsutil fsinfo sectorinfo E:

Suchen Sie nach den Werten PhysicalBytesPerSectorForAtomicity und PhysicalBytesPerSectorForPerformance, die in Byte zurückgegeben werden, und behalten Sie bei unterschiedlichen Werten den größten Wert bei, um die Größe des Datenträgersektors zu ermitteln. Der Wert 4096 gibt eine Sektorspeichergröße von 4 KB an.

Beachten Sie außerdem die Windows-Supportrichtlinie für dateisystem- und Speichersektorgrößenunterstützung. Weitere Informationen finden Sie in der Microsoft-Supportrichtlinie für 4-KB-Sektorfestlaufwerke in Windows.For more information, see the Microsoft support policy for 4-KB sector hard drives in Windows article.

Hinweis

Es gibt keine veröffentlichte Version von SQL Server, die mit Sektorgrößen größer als 4 KB kompatibel ist. Weitere Informationen finden Sie im Artikel Grenzen der Unterstützung von Festplattengrößen bei SQL Server.

Beschlüsse

  • Derzeit ist der ForcedPhysicalSectorSizeInBytes Registrierungsschlüssel erforderlich, um SQL Server erfolgreich zu installieren, wenn moderne Speicherplattformen verwendet werden, z. B. NVMe, die eine Sektorgröße von mehr als 4 KB bereitstellen. Dieser Registrierungsschlüssel des Windows-Betriebssystems erzwingt, dass die Sektorgröße als 4 KB emuliert wird.

    Um den Registrierungsschlüssel hinzuzufügen, verwenden Sie den ForcedPhysicalSectorSizeInBytes Registrierungs-Editor, oder führen Sie Befehle aus, wie im Abschnitt "Eingabeaufforderung" oder "PowerShell" beschrieben. Für dieses Szenario müssen Sie keine Ablaufverfolgungskennzeichnung 1800 hinzufügen.

    Wichtig

    Dieser Abschnitt enthält Schritte, mit denen Sie erfahren, wie Sie die Windows-Registrierung ändern. Durch die falsche Bearbeitung der Registrierung können schwerwiegende Probleme verursacht werden. Daher müssen Sie sicherstellen, dass Sie diese Schritte sorgfältig ausführen. Für weiteren Schutz sichern Sie die Registrierung, bevor Sie sie ändern. Sie können die Registrierung wiederherstellen, wenn ein Problem auftritt. Weitere Informationen zum Sichern und Wiederherstellen der Registrierung finden Sie im Artikel zum Sichern und Wiederherstellen der Registrierung in Windows .

    1. Führen Sie den Registrierungs-Editor als Administrator aus.
    2. Navigieren Sie zu Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device.
    3. Wählen Sie "Neuen> bearbeiten>" aus, und nennen Sie ihn als .ForcedPhysicalSectorSizeInBytes
    4. Klicken Sie mit der rechten Maustaste auf den Namen, wählen Sie "Ändern"* 4095das Feld "Wertdaten" ein.
    5. Wählen Sie "OK" aus, und schließen Sie den Registrierungs-Editor.

    Sie müssen das Gerät neu starten, nachdem Sie den Registrierungsschlüssel hinzugefügt haben, damit diese Änderung wirksam wird.

  • Wenn Sie den Registrierungsschlüssel nicht hinzufügen und über mehrere Laufwerke auf diesem System verfügen, können Sie nach Abschluss der Installation von SQL Server einen anderen Speicherort für die Datenbankdateien angeben. Stellen Sie sicher, dass das Laufwerk beim Abfragen der fsutil Befehle eine unterstützte Sektorgröße widerspiegelt. SQL Server unterstützt derzeit Branchenspeichergrößen von 512 Bytes und 4.096 Bytes.

Vorsicht

Wenn Sie bereits einen Speicherpool mit Datenträgern mit einer Sektorgröße von mehr als 4 KB erstellt haben, um SQL Server-Dateien zu hosten, müssen Sie zuerst den Speicherpool entfernen, eine der in diesem Artikel genannten Problembehandlungsmethoden anwenden und dann den Speicherpool neu erstellen, bevor Sie versuchen, SQL Server im Speicherpool oder in Pools zu installieren.

Weitere Informationen

Windows 11 native NVMe-Treiber wurden aktualisiert, um die tatsächliche Sektorgröße einzuschließen, die direkt von den NVMe-Speichergeräten gemeldet wurde. Dies wurde durchgeführt, anstatt sich auf die Informationen zu verlassen, die von den Dateisystemtreibern emuliert werden.

Die Windows 10-Treiber melden nicht die Größe des Quellsektors des physischen Speichers.

Die verbesserten Windows 11-Treiber ignorieren die Emulation, die gängige NVMe-Speichergeräte verwenden. Zeigt beispielsweise fsutil eine Sektorgröße von 8 KB oder 16 KB an, anstatt die erforderliche 4-KB-Sektorgröße zu emulieren, die von Windows benötigt wird.

Die folgende Tabelle enthält einen Vergleich der branchenspezifischen Größen, die von den Betriebssystemen gemeldet werden. In diesem Beispiel werden die Unterschiede zwischen Windows 10 und Windows 11 unter Verwendung desselben Speichergeräts veranschaulicht. Für die Werte von PhysicalBytesPerSectorForAtomicity und PhysicalBytesPerSectorForPerformance zeigt Windows 10 4 KB und Windows 11 16 KB an.

Beispielausgabe von fsutil fsinfo sectorinfo <volume pathname>

Windows 10 Windows 11
LogicalBytesPerSector : 512 LogicalBytesPerSector : 512
PhysicalBytesPerSectorForAtomicity : 4096 PhysicalBytesPerSectorForAtomicity : 16384
PhysicalBytesPerSectorForPerformance : 4096 PhysicalBytesPerSectorForPerformance : 16384
FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096 FileSystemEffectivePhysicalBytesPerSectorForAtomicity : 4096
Device Alignment : Aligned (0x000) Device Alignment : Aligned (0x000)
Partition alignment on device : Aligned (0x000) Partition alignment on device : Aligned (0x000)
No Seek Penalty No Seek Penalty
Trim Supported Trim Supported
Not DAX capable Not DAX capable
Not Thinly-Provisioned Not Thinly-Provisioned