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 denForcedPhysicalSectorSizeInBytes
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 .
- Führen Sie den Registrierungs-Editor als Administrator aus.
- Navigieren Sie zu
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
. - Wählen Sie "Neuen>Wert für mehrere Zeichenfolgen bearbeiten>" aus, und nennen Sie ihn als .
ForcedPhysicalSectorSizeInBytes
- Klicken Sie mit der rechten Maustaste auf den Namen, wählen Sie "Ändern" aus, und geben
* 4095
Sie das Feld "Wertdaten" ein. - 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 PhysicalBytesPerSectorForAtomicity
PhysicalBytesPerSectorForPerformance
, 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 |