Fouten oplossen met betrekking tot de sector van de systeemschijf groter dan 4 kB
Dit artikel bevat oplossingen voor het oplossen van fouten tijdens de installatie of het starten van een exemplaar van SQL Server op Windows 11 en Windows Server 2022. Dit artikel is geldig voor alle uitgebrachte versies van SQL Server.
De fouten die in dit artikel worden besproken, hebben betrekking op de sectorgrootte van de systeemschijf groter dan 4 kB.
Van toepassing op: SQL Server alle versies
Symptomen
Scenario 1: U installeert elke versie van SQL Server op een Windows 11 apparaat. Vervolgens ziet u fouten die vergelijkbaar zijn met het volgende bericht voor het onderdeel Database Engine Services van SQL Server:
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.
Scenario 2: U installeert een versie van SQL Server op een Windows 10-apparaat. Vervolgens voert u een upgrade uit van het besturingssysteem op het apparaat naar Windows 11. Wanneer u probeert SQL Server te starten op een Windows 11 apparaat, kan de service niet worden gestart. In het SQL Server foutenlogboek ziet u vermeldingen die vergelijkbaar zijn met:
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.
Scenario 3: U installeert een versie van SQL Server op een Windows 10-apparaat. Vervolgens voert u een upgrade uit van het besturingssysteem op het apparaat naar Windows 11. Wanneer u probeert SQL Server te starten op een Windows 11 apparaat, kan de service niet worden gestart. In het SQL Server foutenlogboek ziet u vermeldingen die vergelijkbaar zijn met:
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
Scenario 4: U installeert LocalDB op een Windows 11-apparaat. De installatie mislukt en in het SQL Server foutenlogboek ziet u vermeldingen die vergelijkbaar zijn met:
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.
In het gebeurtenislogboek van Windows 11 toepassing ziet u vermeldingen die vergelijkbaar zijn met:
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
Opmerking
U kunt de fouten tegenkomen die in de vorige scenario's zijn vermeld voor een SQL Server exemplaar dat u handmatig hebt geïnstalleerd of op een LocalDB-exemplaar dat is geïnstalleerd door toepassingen.
Scenario 5: Als u een sector groter dan 4 kB probeert te gebruiken, ziet u het volgende foutbericht:
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.
Oorzaak
Tijdens het opstarten van de service start SQL Server het herstelproces van de database om de consistentie van de database te garanderen. Onderdeel van dit databaseherstelproces omvat consistentiecontroles op het onderliggende bestandssysteem voordat u systeem- en gebruikersdatabasebestanden probeert te openen.
Op systemen waarop Windows 11 wordt uitgevoerd, bieden sommige nieuwe opslagapparaten en apparaatstuurprogramma's een schijfsectorgrootte die groter is dan de ondersteunde sectorgrootte van 4 kB.
Wanneer dit gebeurt, kan SQL Server niet worden gestart vanwege het niet-ondersteunde bestandssysteem, omdat SQL Server momenteel opslaggrootten van 512 bytes en 4 kB ondersteunt.
U kunt controleren of u dit specifieke probleem ondervindt door de opdracht uit te voeren:
fsutil fsinfo sectorinfo <volume pathname>
Als u bijvoorbeeld het volume E: wilt analyseren, voert u de volgende opdracht uit:
fsutil fsinfo sectorinfo E:
Zoek naar de waarden PhysicalBytesPerSectorForAtomicity
en PhysicalBytesPerSectorForPerformance
, geretourneerd in bytes, en als ze verschillen, behoudt u de grootste om de grootte van de schijfsector te bepalen. Een waarde van 4096 geeft een opslaggrootte van 4 kB aan.
Houd ook rekening met het Windows-ondersteuningsbeleid voor ondersteuning van bestandssysteem en opslagsector. Zie het artikel Microsoft-ondersteuningsbeleid voor harde schijven in de sector 4 kB in Windows voor meer informatie.
Opmerking
Er is geen uitgebrachte versie van SQL Server die compatibel is met sectorgrootten groter dan 4 kB. Zie de ondersteuningsgrenzen voor de sectorgrootte van harde schijven in SQL Server artikel voor meer informatie.
Oplossingen
Microsoft onderzoekt dit probleem momenteel.
Overweeg een van de volgende oplossingen:
Als u meerdere stations op dit systeem hebt, kunt u een andere locatie opgeven voor de databasebestanden nadat de installatie van SQL Server is voltooid. Zorg ervoor dat het station een ondersteunde sectorgrootte weergeeft bij het uitvoeren van query's op de
fsutil
opdrachten. SQL Server ondersteunt momenteel sectoropslaggrootten van 512 bytes en 4096 bytes.U kunt een registersleutel toevoegen, waardoor het gedrag van Windows 11 en later vergelijkbaar is met Windows 10. Hierdoor wordt de sectorgrootte geëmuleerd als 4 kB. Als u de
ForcedPhysicalSectorSizeInBytes
registersleutel wilt toevoegen, gebruikt u de registeropdrachten Editor of voert u de opdrachten uit zoals beschreven in de sectie PowerShell als beheerder. U moet het apparaat opnieuw opstarten nadat u de registersleutel hebt toegevoegd om deze wijziging door te voeren.Belangrijk
Deze sectie bevat stappen die u laten zien hoe u het Windows-register kunt wijzigen. Als u het register op onjuiste wijze wijzigt, kunnen er echter grote problemen optreden. Het is dan ook belangrijk dat u deze stappen zorgvuldig uitvoert. Maak een back-up van het register voordat u wijzigingen aanbrengt. Als er een probleem optreedt, kunt u het register altijd nog herstellen. Zie het artikel Een back-up van het register maken en herstellen in Windows voor meer informatie over het maken van een back-up en het herstellen van het register .
- Navigeer naar
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
. - Wijs in het menu Bewerkende optie Nieuw aan en selecteer vervolgens Waarde voor meerdere tekenreeksen. Geef het de
ForcedPhysicalSectorSizeInBytes
naam . - Wijzig de nieuwe waarde en typ in
* 4095
. Selecteer OK en sluit de Register-editor.
Voeg de sleutel toe.
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
Controleer of de sleutel is toegevoegd.
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes"
Voeg de sleutel toe.
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"
Controleer of de sleutel is toegevoegd.
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes"
- Navigeer naar
U kunt SQL Server door de traceringsvlag 1800 op te geven. Zie DBCC TRACEON voor meer informatie. Deze traceringsvlag is niet standaard ingeschakeld. Traceringsvlag 1800 dwingt SQL Server om 4 kB te gebruiken als sectorgrootte voor alle lees- en schrijfbewerkingen. Wanneer u SQL Server uitvoert op schijven met een fysieke sectorgrootte groter dan 4 kB, wordt met de traceringsvlag 1800 een systeemeigen 4 kB-station gesimuleerd. Dit is de ondersteunde sectorgrootte voor SQL Server.
Installeer SQL Server op beschikbare Windows 10 apparaten.
Meer informatie
Windows 11 systeemeigen NVMe-stuurprogramma's zijn bijgewerkt met de werkelijke sectorgrootte die rechtstreeks door de NVMe-opslagapparaten wordt gerapporteerd. Dit is gedaan in plaats van te vertrouwen op de informatie die is geëmuleerd van de bestandssysteemstuurprogramma's.
De Windows 10 stuurprogramma's rapporteren niet de grootte van de bronsector van de fysieke opslag.
De verbeterde Windows 11 stuurprogramma's negeren de emulatie die algemene NVMe-opslagapparaten gebruiken. Als voorbeeld fsutil
geeft u een sectorgrootte van 8 kB of 16 kB weer, in plaats van de vereiste sectorgrootte van 4 kB te emuleren die is vereist voor Windows.
De volgende tabel bevat een vergelijking van de sectorgrootten die door de besturingssystemen zijn gerapporteerd. In dit voorbeeld ziet u de verschillen tussen Windows 10 en Windows 11 met hetzelfde opslagapparaat. Voor de waarden van PhysicalBytesPerSectorForAtomicity
en PhysicalBytesPerSectorForPerformance
wordt Windows 10 4 kB weergegeven en Windows 11 16 kB.
Voorbeelduitvoer van 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 |
Zie ook
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor