Freigeben über


Beheben von Fehlern im Zusammenhang mit der Größe des Systemdatenträgersektors größer als 4 KB

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.

Die in diesem Artikel beschriebenen Fehler beziehen sich auf die Größe des Systemdatenträgersektors, die größer als 4 KB sind.

Gilt für: SQL Server alle Versionen

Symptome

Szenario Nr. 1: Sie installieren eine beliebige Version von SQL Server. Anschließend werden Fehler wie die folgende Meldung für die komponente Datenbank-Engine Services von SQL Server angezeigt:

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 Fehler im SQL Server-Fehlerprotokoll ähnlich wie:

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 Nr. 2: 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, und im SQL Server-Fehlerprotokoll werden Die Einträge ähnlich wie:

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 Nr. 3: 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 Einträge ähnlich wie:

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 Nr. 4: Sie installieren LocalDB auf einem Windows 11-Gerät. Das Setup schlägt fehl, und im SQL Server-Fehlerprotokoll sehen Sie Einträge ähnlich wie:

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 für Windows 11-Anwendungen werden Einträge wie die folgenden aufgeführt:

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.

Szenario Nr. 5: Wenn Sie versuchen, die Sektorgröße höher 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.

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.

In diesem Fall kann SQL Server aufgrund des nicht unterstützten Dateisystems nicht gestartet werden, da SQL Server derzeit Branchenspeichergröß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 Branchengrößen kompatibel ist, die größer als 4 KB sind. Weitere Informationen finden Sie im Sql Server-Artikel zur Unterstützung von Festplattenlaufwerken in der Größe der Festplatte.

Auflösungen

  • 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. Sie müssen das Gerät neu starten, nachdem Sie den Registrierungsschlüssel hinzugefügt haben, damit diese Änderung wirksam wird. 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>Wert für mehrere Zeichenfolgen bearbeiten>" aus, und nennen Sie ihn als .ForcedPhysicalSectorSizeInBytes
    4. Klicken Sie mit der rechten Maustaste auf den Namen, wählen Sie "Ändern" aus, und geben * 4095 Sie das Feld "Wertdaten" ein.
    5. Wählen Sie "OK" aus, und schließen Sie den Registrierungs-Editor.
  • 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.

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 und PhysicalBytesPerSectorForAtomicityPhysicalBytesPerSectorForPerformance, Windows 10 zeigt 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