Compartir a través de


Error de instalación de SQL Server con error de tamaño de sector en una máquina virtual de Azure de Windows Server 2022

Este artículo le ayuda a resolver un problema que se produce al intentar instalar manualmente una instancia de SQL Server en una máquina virtual (VM) de Microsoft Azure que ejecuta Windows.

Se aplica a: SQL Server, SQL Server en máquinas virtuales de Azure: Windows

Síntomas

Cuando intenta instalar una instancia de SQL Server en una máquina virtual (VM) de Azure que ejecuta Windows, se produce un error en la instalación y recibe el siguiente mensaje de error en el registro de errores de SQL Server cuando el motor intenta iniciarse durante la instalación:

No se puede usar el archivo '...\master.mdf' porque originalmente se ha formateado con el tamaño de sector 4096 y ahora está en un volumen con tamaño de sector 8192. Mueva el archivo a un volumen con un tamaño de sector que sea igual o menor que el tamaño de sector original.

Además, puede ver la siguiente información en el archivo de registro de Summary.txt en la carpeta de instalación 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.

Este problema puede producirse con instalaciones locales, pero es más probable que lo encuentre al instalar SQL Server en la máquina virtual (VM) de Microsoft Azure.

Causa

Este problema se produce debido a la configuración del tamaño del sector del disco en determinadas máquinas virtuales de Azure. Algunas de las últimas generaciones de máquinas virtuales de Azure (como Da, Ea y Fav6) tienen una interfaz de almacenamiento de solo NVMe y requieren una imagen del sistema operativo que admita NVMe. Sin embargo, estas últimas generaciones de máquinas virtuales de Azure se implementan con un tamaño de sector predeterminado de 8 KB, que actualmente no es compatible con SQL Server. SQL Server admite actualmente discos con tamaños de sector nativo estándar de 512 bytes y 4 KB.

Nota:

Memory Express no volátil (NVMe) es un protocolo de comunicación que facilita la transferencia de datos más rápida y eficaz entre servidores y sistemas de almacenamiento mediante memoria no volátil (NVM). Con NVMe, los datos se pueden transferir con el máximo rendimiento y con los tiempos de respuesta más rápidos.

Si una máquina virtual de Azure se implementa con el tamaño del sector de 8 KB e intenta instalar SQL Server después de la implementación, es posible que se produzca un error en la instalación.

Nota:

Este escenario solo se produce cuando se instala SQL Server manualmente en una máquina virtual de Azure, pero no cuando se implementa una máquina virtual con SQL Server desde Azure Marketplace. Las imágenes de Azure Marketplace están preconfiguradas para usar el tamaño del sector de 4 KB.

Solución

Para resolver este problema, vuelva a instalar SQL Server después de forzar que la máquina virtual de Azure use el tamaño del sector de 4 KB.

Para instalar CORRECTAMENTE SQL Server en la máquina virtual de Azure, siga estos pasos:

  1. Si ya ha instalado SQL Server, desinstale SQL Server. Si no, continúe con el paso siguiente.

  2. Agregue la clave del Registro ForcedPhysicalSectorSizeInBytes .

  3. Compruebe que el tamaño del sector es de 4 KB ejecutando el siguiente comando en un símbolo del sistema con privilegios elevados:

    fsutil fsinfo sectorinfo <volume pathname>

  4. Reinicie la máquina virtual de Azure.

  5. Reinstale SQL Server.

En la captura de pantalla siguiente se muestra la salida del fsutil fsinfo sectorinfo comando para la E: unidad, que tiene un tamaño de sector de 8 KB:

Captura de pantalla de la salida del símbolo del sistema del tamaño del sector de 8 KB.

En la captura de pantalla siguiente se muestra la salida del comando de la E: unidad después de fsutil fsinfo sectorinfo actualizar la clave del Registro para usar el tamaño del sector de 4 KB:

Captura de pantalla de la salida del símbolo del sistema del tamaño del sector de 4 KB.

La ForcedPhysicalSectorSizeInBytes clave del Registro es una configuración de nivel de sistema operativo, lo que significa que todas las unidades conectadas actualmente y las asociadas en el futuro usan el tamaño del sector de 4 KB a menos que se quite esta clave del Registro.