Partager via


Résoudre les erreurs SQL Server liées à la taille du secteur du disque système supérieure à 4 Ko

Cet article fournit des solutions pour résoudre les erreurs lors de l’installation ou démarrer une instance de SQL Server sur Windows. Cet article est valide pour toutes les versions publiées de SQL Server.

Cet article décrit les erreurs liées à la taille du secteur du disque système supérieure à 4 Ko. Lorsque vous essayez d’installer une instance SQL Server sur une machine avec une taille de secteur de disque système supérieure à 4 Ko, vous pouvez rencontrer les scénarios suivants :

S’applique à : SQL Server toutes les versions

Scénario 1 : Déplacer le fichier vers un volume avec une taille de secteur compatible

Si 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 SQL Server sur une machine virtuelle Azure exécutant 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 des erreurs qui ressemblent au message suivant pour le composant Database Engine 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 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, et si elles sont différentes, conservez la plus grande pour déterminer la taille du secteur du disque. La valeur 4096 indique une taille de stockage de secteur de 4 Ko.

En outre, tenez compte de la stratégie de prise en charge de Windows pour la prise en charge du système de fichiers et de la taille du secteur de stockage. Pour plus d’informations, consultez la stratégie de support Microsoft pour les disques durs du secteur 4 Ko dans l’article 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 du lecteur de disque dur dans l’article SQL Server .

Étapes de résolution pour les erreurs de taille de secteur de disque dans SQL Server

  • Actuellement, la ForcedPhysicalSectorSizeInBytes clé 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 la taille du secteur à émuler sous la forme de 4 Ko.

    Pour ajouter la clé de Registre, utilisez l’Éditeur ForcedPhysicalSectorSizeInBytes de Registre ou exécutez des commandes, comme décrit dans l’invite de commandes ou la section 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 le restaurer 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 .

    1. Exécutez l’Éditeur du Registre en tant qu’administrateur.
    2. Accédez à la page Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device.
    3. Sélectionnez Modifier>comme .
    4. Cliquez avec le bouton droit sur le nom, sélectionnez Modifier et tapez * 4095 le champ De données Valeur.
    5. 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 reflète une taille de secteur prise en charge lors de l’interrogation fsutil des commandes. 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.

Les pilotes Windows 10 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 et PhysicalBytesPerSectorForAtomicityPhysicalBytesPerSectorForPerformance, 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