Solución de errores relacionados con el tamaño del sector del disco del sistema superior a 4 KB
En este artículo se proporcionan soluciones para solucionar errores durante la instalación o iniciar una instancia de SQL Server en Windows 11 y Windows Server 2022. Este artículo es válido para todas las versiones publicadas de SQL Server.
Los errores descritos en este artículo están relacionados con el tamaño del sector del disco del sistema superior a 4 KB.
Se aplica a: SQL Server todas las versiones
Síntomas
Escenario 1: instale cualquier versión de SQL Server en un dispositivo Windows 11. A continuación, verá errores similares al siguiente mensaje para el componente Motor de base de datos 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.
Escenario 2: instale cualquier versión de SQL Server en un dispositivo Windows 10. A continuación, actualice el sistema operativo en el dispositivo a Windows 11. Al intentar iniciar SQL Server en un dispositivo Windows 11, el servicio no se inicia y, en el registro de errores de SQL Server, observa entradas similares a las siguientes:
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.
Escenario 3: instale cualquier versión de SQL Server en un dispositivo Windows 10. A continuación, actualice el sistema operativo en el dispositivo a Windows 11. Cuando intenta iniciar SQL Server en un dispositivo Windows 11, el servicio no se inicia. En el registro de errores de SQL Server, verá entradas similares a las siguientes:
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
Escenario 4: Instalar LocalDB en un dispositivo Windows 11. El programa de instalación produce un error y, en el registro de errores de SQL Server, observa entradas similares a las siguientes:
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.
En el registro de eventos de la aplicación de Windows 11, observa entradas similares a las siguientes:
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
Nota:
Es posible que encuentre los errores mencionados en los escenarios anteriores de una instancia de SQL Server que instaló manualmente o en una instancia de LocalDB instalada por las aplicaciones.
Escenario 5: si intenta usar el tamaño del sector superior a 4 KB, verá el siguiente mensaje de error:
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.
Causa
Durante el inicio del servicio, SQL Server inicia el proceso de recuperación de la base de datos para garantizar la coherencia de la base de datos. Parte de este proceso de recuperación de base de datos implica comprobaciones de coherencia en el sistema de archivos subyacente antes de intentar abrir archivos de base de datos de usuario y del sistema.
En los sistemas que ejecutan Windows 11, algunos nuevos dispositivos de almacenamiento y controladores de dispositivos exponen un tamaño de sector de disco mayor que el tamaño de sector de 4 KB admitido.
Cuando esto ocurre, SQL Server no podrá iniciarse debido al sistema de archivos no admitido, ya que SQL Server admite actualmente tamaños de almacenamiento del sector de 512 bytes y 4 KB.
Para confirmar que encuentra este problema específico, ejecute el comando :
fsutil fsinfo sectorinfo <volume pathname>
Por ejemplo, para analizar el volumen E: , ejecute el siguiente comando:
fsutil fsinfo sectorinfo E:
Busque los valores PhysicalBytesPerSectorForAtomicity
y PhysicalBytesPerSectorForPerformance
, devueltos en bytes y, si son diferentes, conserve el mayor para determinar el tamaño del sector del disco. Un valor de 4096 indica un tamaño de almacenamiento del sector de 4 KB.
Además, tenga en cuenta la directiva de compatibilidad de Windows con compatibilidad con el sistema de archivos y el tamaño del sector de almacenamiento. Para obtener más información, consulte el artículo Directiva de soporte técnico de Microsoft para unidades de disco duro del sector de 4 KB en Windows .
Nota:
No hay ninguna versión publicada de SQL Server compatible con tamaños de sector superiores a 4 KB. Para obtener más información, consulte el artículo Límites de compatibilidad del tamaño del sector de la unidad de disco duro en SQL Server .
Resoluciones
Microsoft está investigando este problema actualmente.
Considere una de las siguientes soluciones:
Si tiene varias unidades en este sistema, puede especificar una ubicación diferente para los archivos de base de datos una vez completada la instalación de SQL Server. Asegúrese de que la unidad refleje un tamaño de sector admitido al consultar los
fsutil
comandos. SQL Server admite actualmente tamaños de almacenamiento de sector de 512 bytes y 4096 bytes.Puedes agregar una clave del Registro, lo que hará que el comportamiento de Windows 11 y versiones posteriores sea similar a Windows 10. Esto obliga a que el tamaño del sector se emule como 4 KB. Para agregar la clave del
ForcedPhysicalSectorSizeInBytes
Registro, use el Editor del Registro o ejecute comandos como se describe en la sección Administrador de PowerShell. Debe reiniciar el dispositivo después de agregar la clave del Registro para que este cambio surta efecto.Importante
Esta sección contiene pasos que le indican cómo modificar el Registro de Windows. Sin embargo, pueden producirse graves problemas si modifica el Registro de manera incorrecta. Por lo tanto, asegúrese de que sigue estos pasos con atención. Para la protección añadida, realice una copia de seguridad del Registro antes de modificarlo. A continuación, puede restaurar el Registro si se produce un problema. Para obtener más información sobre cómo realizar copias de seguridad y restaurar el registro, consulte el artículo Cómo realizar copias de seguridad y restaurar el registro en Windows .
- Vaya a
Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device
. - En el menú Editar , seleccione Nuevo y, a continuación, seleccione Valor de cadena múltiple. Denomínelo
ForcedPhysicalSectorSizeInBytes
. - Modifique el nuevo valor, escriba .
* 4095
Seleccione Aceptar y cierre el editor del Registro.
Símbolo del sistema como administrador
Agregue la clave.
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
Valide si la clave se agregó correctamente.
REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes"
Agregue la clave.
New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString -Force -Value "* 4095"
Valide si la clave se agregó correctamente.
Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name "ForcedPhysicalSectorSizeInBytes"
- Vaya a
Puede iniciar SQL Server especificando la marca de seguimiento 1800. Para obtener más información, consulte DBCC TRACEON. Esta marca de seguimiento no está habilitada de forma predeterminada. La marca de seguimiento 1800 obliga a SQL Server a usar 4 KB como tamaño de sector para todas las operaciones de lectura y escritura. Cuando ejecuta SQL Server en discos con un tamaño de sector físico superior a 4 KB, el uso de la marca de seguimiento 1800 simulará una unidad nativa de 4 KB, que es el tamaño de sector admitido para SQL Server.
Instale SQL Server en dispositivos Windows 10 disponibles en su lugar.
Más información
Los controladores NVMe nativos de Windows 11 se actualizaron para incluir el tamaño del sector real notificado directamente por los dispositivos de almacenamiento NVMe. Esto se hizo en lugar de basarse en la información emulada de los controladores del sistema de archivos.
Los controladores de Windows 10 no notifican el tamaño del sector de origen del almacenamiento físico.
Los controladores mejorados de Windows 11 ignoran la emulación que usan los dispositivos de almacenamiento NVMe comunes. Por ejemplo, fsutil
muestra un tamaño de sector de 8 KB o 16 KB, en lugar de simular el tamaño de sector de 4 KB requerido por Windows.
En la tabla siguiente se proporciona una comparación de los tamaños de sector notificados por los sistemas operativos. En este ejemplo se muestran las diferencias entre Windows 10 y Windows 11 con el mismo dispositivo de almacenamiento. Para los valores de PhysicalBytesPerSectorForAtomicity
y PhysicalBytesPerSectorForPerformance
, Windows 10 muestra 4 KB y Windows 11 muestra 16 KB.
Salida de ejemplo 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 |
Consulte también
- Tipos de almacenamiento de SQL Server para archivos de datos
- KB3009974: CORRECCIÓN: sincronización lenta cuando los discos tienen diferentes tamaños de sector para los archivos de registro de réplica principal y secundaria en el GRUPO de disponibilidad de SQL Server y entornos de logshipping
- SQL Server LocalDB