Solución de errores relacionados con el tamaño del sector del disco del sistema mayor que 4 KB

En este artículo se proporcionan soluciones para solucionar errores durante la instalación o el inicio de 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 mayor que 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 Servicios de motor de base de datos 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 del 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 del dispositivo a Windows 11. Cuando intenta iniciar SQL Server en un dispositivo Windows 11, el servicio no se inicia. En el registro de errores SQL Server, observará 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: Instale LocalDB en un dispositivo Windows 11. Se produce un error en la instalación y, en el registro de errores de SQL Server, verá 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 Windows 11 aplicación, observará 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 se produzcan los errores mencionados en los escenarios anteriores para una instancia de SQL Server que instaló manualmente o en una instancia de LocalDB instalada por las aplicaciones.

Escenario 5: Si intenta usar un tamaño de 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 comienza 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 del sector de 4 KB admitido.

Cuando esto ocurra, SQL Server no podrá iniciarse debido al sistema de archivos no compatible, ya que SQL Server admite actualmente tamaños de almacenamiento del sector de 512 bytes y 4 KB.

Puede confirmar que encuentra este problema específico ejecutando 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 más grande 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 soporte técnico de Windows para el sistema de archivos y la compatibilidad con 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 mayores que 4 KB. Para obtener más información, consulte los límites de compatibilidad con el tamaño del sector de las unidades de disco duro en SQL Server artículo.

Soluciones

Microsoft está investigando este problema.

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 refleja 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.

  • Puede agregar una clave del Registro, lo que hará que el comportamiento de Windows 11 y versiones posteriores sea similar a Windows 10. Esto obliga al tamaño del sector a emularse como 4 KB. Para agregar la clave del ForcedPhysicalSectorSizeInBytes Registro, use el registro Editor o ejecute comandos como se describe en la sección PowerShell como administrador. 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 indican cómo modificar el Registro de Windows. No obstante, pueden producirse problemas graves si modifica el registro de manera incorrecta. En consecuencia, asegúrese de seguir estos pasos cuidadosamente. Para mayor protección, cree una copia de seguridad del registro antes de modificarlo. Después, puede restaurar el registro si se produce un problema. Para obtener más información sobre cómo hacer una copia de seguridad y restaurar el Registro, consulte el artículo Cómo realizar copias de seguridad y restaurar el registro en Windows .

    Editor del Registro

    1. Vaya a Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device.
    2. En el menú Editar , seleccione Nuevo y, a continuación, seleccione Valor de cadena múltiple. Asígnele el ForcedPhysicalSectorSizeInBytesnombre .
    3. Modifique el nuevo valor y escriba * 4095. Seleccione Aceptar y cierre el editor del Registro.

    Símbolo del sistema como administrador

    1. Agregue la clave.

      REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t   REG_MULTI_SZ /d "* 4095" /f
      
    2. Valide si la clave se agregó correctamente.

      REG QUERY "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes"
      

    PowerShell como administrador

    1. Agregue la clave.

      New-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name   "ForcedPhysicalSectorSizeInBytes" -PropertyType MultiString        -Force -Value "* 4095"
      
    2. Valide si la clave se agregó correctamente.

       Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" -Name   "ForcedPhysicalSectorSizeInBytes"
      
  • 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 del sector para todas las operaciones de lectura y escritura. Al ejecutar 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 del sector admitido para SQL Server.

  • En su lugar, instale SQL Server en dispositivos Windows 10 disponibles.

Más información

Windows 11 controladores nvme nativos se actualizaron para incluir el tamaño real del sector notificado directamente por los dispositivos de almacenamiento NVMe. Esto se ha hecho 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 de Windows 11 mejorados no tienen en cuenta 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 emular 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

Vea también