Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Summary
Cet article fournit des solutions pour résoudre les problèmes d’installation et de démarrage de SQL Server provoqués par une taille de secteur de disque système supérieure à la taille prise en charge de 4 Ko. Ces erreurs se produisent lorsque des périphériques de stockage modernes, tels que des disques SSD NVMe, signalent une taille de secteur de disque système supérieure à 4 Ko. Les symptômes incluent des échecs de l’installation de SQL, les erreurs 5178 et 5179, un handle de démarrage ou de récupération du moteur de base de données défaillant, des avertissements « opérations d’E/S du journal mal alignées » et des défaillances d’application ntdll.dll. Les solutions s’appliquent à toutes les versions publiées de SQL Server, y compris LocalDB.
L’installation de SQL Server sur une machine avec une taille de secteur de disque système supérieure à 4 Ko peut entraîner les scénarios suivants.
Scénario 1 : Déplacer le fichier vers un volume avec une taille de secteur compatible
Lorsque vous essayez d’utiliser la taille du secteur supérieure à 4 Ko, le message d’erreur suivant s’affiche :
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.
Scénario 2 : Impossible de trouver le handle de démarrage du moteur de base de données
Lorsque vous essayez d’installer une instance de SQL Server sur une machine virtuelle Azure en cours d’exécution Windows, l’installation échoue et vous recevez le message d’erreur suivant dans le journal des erreurs SQL Server lorsque le moteur tente de démarrer pendant l’installation :
Impossible d’utiliser le fichier '...\master.mdf', car il a été initialement mis en forme avec une taille de secteur 4096 et est maintenant sur un volume dont la taille de secteur est 8192. Déplacez le fichier vers un volume dont la taille des secteurs est inférieure ou égale à la taille des secteurs d'origine.
En outre, vous pouvez voir les informations suivantes dans le fichier journal Summary.txt dans le dossier d’installation de SQL Server :
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.
Pour plus d’informations, consultez « Échec de l'installation de SQL Server avec une erreur de taille de secteur sur une machine virtuelle Windows Server 2022 Azure ».
Scénario 3 : Échec de l’attente sur le handle de récupération du moteur de base de données
Lorsque vous installez une version de SQL Server, vous voyez l’erreur suivante pour le composant Moteur de base de données Services de 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.
Vous voyez également les erreurs suivantes dans le journal des erreurs SQL Server :
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.
Scénario 4 : 256 E/S de journal ont été mal alignées, ce qui a nécessité de revenir aux E/S synchrones
Vous installez n’importe quelle version de SQL Server sur un appareil Windows 10. Ensuite, vous mettez à niveau le système d’exploitation sur l’appareil vers Windows 11. Lorsque vous essayez de démarrer SQL Server sur un appareil Windows 11, le service ne parvient pas à démarrer. Dans le journal des erreurs SQL Server, vous remarquez les entrées suivantes :
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.
Scénario 5 : Erreur d’application SQL Server de ntdll.dll
Vous installez n’importe quelle version de SQL Server sur un appareil Windows 10. Ensuite, vous mettez à niveau le système d’exploitation sur l’appareil vers Windows 11. Lorsque vous essayez de démarrer SQL Server sur un appareil Windows 11, le service ne parvient pas à démarrer. Dans le journal des erreurs SQL Server, vous remarquez les entrées suivantes :
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
Scénario 6 : Déplacer le fichier vers un volume avec une taille de secteur identique ou inférieure à la taille du secteur d’origine
Vous installez LocalDB sur un appareil Windows 11 et l’installation échoue. Dans le journal des erreurs SQL Server, vous remarquez les entrées suivantes :
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.
Dans le journal des événements d’application Windows sur l’appareil Windows 11, vous remarquez les entrées suivantes :
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
Remarque
Vous pouvez rencontrer les échecs mentionnés dans les scénarios précédents pour une instance SQL Server que vous avez installée manuellement ou sur une instance LocalDB installée par les applications.
Cause des erreurs de taille de secteur de disque dans SQL Server
Au démarrage du service, SQL Server démarre le processus de récupération de base de données pour garantir la cohérence de la base de données. Une partie de ce processus de récupération de base de données implique des vérifications de cohérence sur le système de fichiers sous-jacent avant d’essayer d’ouvrir des fichiers de base de données système et utilisateur.
Certains nouveaux périphériques de stockage et pilotes de périphérique exposent une taille de secteur de disque supérieure à la taille de secteur de 4 Ko prise en charge.
Lorsque ce problème se produit, SQL Server ne peut pas démarrer en raison du système de fichiers non pris en charge, car SQL Server prend actuellement en charge les tailles de stockage du secteur de 512 octets et 4 Ko.
Vous pouvez confirmer que vous rencontrez ce problème spécifique en exécutant la commande :
fsutil fsinfo sectorinfo <volume pathname>
Par exemple, pour analyser le volume E : , exécutez la commande suivante :
fsutil fsinfo sectorinfo E:
Recherchez les valeurs PhysicalBytesPerSectorForAtomicity et PhysicalBytesPerSectorForPerformance, retournées en octets. S’ils sont différents, conservez le plus grand pour déterminer la taille du secteur du disque. La valeur 4096 indique une taille de stockage de secteur de 4 Ko.
En outre, reportez-vous à l’article Stratégie de support Microsoft pour les disques durs à secteurs de 4 Ko dans Windows.
Remarque
Il n’existe aucune version publiée de SQL Server compatible avec les tailles de secteur supérieures à 4 Ko. Pour plus d’informations, consultez les limites de prise en charge des tailles de disque dur dans SQL Server.
Étapes de résolution pour les erreurs de taille de secteur de disque dans SQL Server
Actuellement, la
ForcedPhysicalSectorSizeInBytesclé de Registre est nécessaire pour installer SQL Server avec succès lors de l’utilisation de plateformes de stockage modernes, telles que NVMe, qui fournissent une taille de secteur supérieure à 4 Ko. Cette clé de registre du système d’exploitation Windows force l’émulation de la taille de secteur à 4 Ko.Pour ajouter la clé de Registre
ForcedPhysicalSectorSizeInBytes, utilisez l’Éditeur du Registre ou exécutez des commandes comme indiqué dans la section Invite de commandes ou PowerShell. Il n’est pas nécessaire d’ajouter l’indicateur de trace 1800 pour ce scénario.Important
Cette section contient des étapes qui vous indiquent comment modifier le Registre Windows. Toutefois, des problèmes graves peuvent se produire si vous modifiez le Registre de façon incorrecte. Par conséquent, vérifiez que vous suivez ces étapes attentivement. Pour une protection supplémentaire, sauvegardez le Registre avant de le modifier. Vous pouvez alors restaurer le Registre en cas de problème. Pour plus d’informations sur la sauvegarde et la restauration du Registre, consultez l’article Comment sauvegarder et restaurer le Registre dans Windows .
- Exécutez l’Éditeur du Registre en tant qu’administrateur.
- Accédez à la page
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device. - Sélectionnez Modifier>Nouveau>Valeur multichaîne et nommez-la
ForcedPhysicalSectorSizeInBytes. - Cliquez avec le bouton droit sur le nom, sélectionnez Modifier, puis tapez
* 4095dans le champ Données de la valeur. - Sélectionnez OK et fermez l’Éditeur du Registre.
Vous devez redémarrer l’appareil après avoir ajouté la clé de Registre pour que cette modification prenne effet.
Si vous n’ajoutez pas la clé de Registre et que vous avez plusieurs lecteurs sur ce système, vous pouvez spécifier un autre emplacement pour les fichiers de base de données une fois l’installation de SQL Server terminée. Assurez-vous que le lecteur indique une taille de secteur prise en charge lors de l’exécution des commandes
fsutil. SQL Server prend actuellement en charge les tailles de stockage du secteur de 512 octets et 4 096 octets.
Caution
Si vous avez déjà créé un pool de stockage avec des disques dont la taille de secteur est supérieure à 4 Ko pour héberger des fichiers SQL Server, vous devez d’abord supprimer le pool de stockage, appliquer l’une des méthodes de résolution des problèmes mentionnées dans cet article, puis reconstruire le pool de stockage avant de tenter d’installer SQL Server sur le pool de stockage ou les pools.
Plus d’informations
Les pilotes NVMe natifs Windows 11 ont été mis à jour pour inclure la taille réelle du secteur signalée directement par les périphériques de stockage NVMe. Cette opération a été effectuée plutôt que de s’appuyer sur les informations émulées à partir des pilotes du système de fichiers.
Windows 10 pilotes ne signalent pas la taille du secteur source du stockage physique.
Les pilotes Windows 11 améliorés ignorent l’émulation que les périphériques de stockage NVMe courants utilisent. Par exemple, fsutil affiche une taille de secteur de 8 Ko ou 16 Ko, plutôt que de simuler la taille de secteur de 4 Ko requise par Windows.
Le tableau suivant fournit une comparaison des tailles de secteur signalées par les systèmes d’exploitation. Cet exemple illustre les différences entre Windows 10 et Windows 11 à l’aide du même périphérique de stockage. Pour les valeurs de PhysicalBytesPerSectorForAtomicity et de PhysicalBytesPerSectorForPerformance, Windows 10 affiche 4 Ko et Windows 11 affiche 16 Ko.
Exemple de sortie de 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 |