Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server, SQL Server en máquinas virtuales de Azure: Windows
Resumen
Este artículo le ayuda a solucionar un problema que se produce al instalar manualmente una instancia de SQL Server en una máquina virtual (VM) Microsoft Azure que se ejecuta Windows. Al instalar SQL Server en una máquina virtual de Azure que usa un disco NVMe con un tamaño de sector nativo superior a 4 KB, se produce un error en la instalación porque SQL Server archivos de datos como master.mdf no se pueden hospedar en un volumen con un tamaño de sector de 8 KB. En este artículo se explica por qué se produce un desajuste del tamaño de sector en las series más recientes de máquinas virtuales de Azure y cómo forzar un tamaño de sector de 4 KB para que la instalación de SQL Server se realice correctamente en el disco.
Síntomas
Al instalar una instancia de SQL Server en una máquina virtual de Azure que ejecuta Windows, se produce un error en la instalación y el registro de errores de SQL Server muestra el siguiente mensaje cuando el motor intenta iniciarse:
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.
El archivo de registro Summary.txt en la carpeta de instalación de SQL Server también muestra entradas como las siguientes:
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 vea al instalar SQL Server en una máquina virtual de Azure.
Causa
Este problema se produce debido al tamaño de sector del disco en algunos tamaños de máquina virtual Azure. Las series de máquinas virtuales Azure más recientes, como Dadsv6, Eadsv6 y Fasv6, usan una interfaz de almacenamiento de solo NVMe y requieren una imagen del sistema operativo que admita NVMe. Estas series de máquinas virtuales presentan discos con un tamaño de sector nativo predeterminado de 8 KB, que SQL Server no admite para archivos de base de datos. SQL Server admite discos con tamaños de sector nativo de 512 bytes y 4 KB. Si una máquina virtual de Azure se implementa con un tamaño de sector de 8 KB y, a continuación, instala SQL Server, se puede producir un error en la instalación. Para obtener más información, consulte Tipos de almacenamiento para SQL Server.
Nota:
Este escenario solo se aplica cuando se instala manualmente SQL Server en una máquina virtual de Azure. No se aplica al implementar una imagen de máquina virtual de SQL Server desde Azure Marketplace, ya que esas imágenes están preconfiguradas para usar un tamaño de sector de 4 KB.
Tipos de disco y máquina virtual afectados
Normalmente, en estos escenarios se ve que el tamaño del sector no coincide:
- Discos NVMe locales en la serie de máquinas virtuales v6 (por ejemplo, Dadsv6, Eadsv6, Easv6 y Fasv6), que exponen un tamaño de sector nativo de 8 KB.
- Premium SSD v2 y Ultra Disk cuando se crea el disco con un tamaño de sector lógico de 4096 bytes, pero se presenta a través de un host que indica un tamaño de sector físico de 8 KB.
Los discos de datos HDD estándar, SSD estándar y SSD Premium (v1) que se conectan a la serie de máquinas virtuales anteriores suelen presentar un tamaño de sector de 4 KB y no se ven afectados.
Solución
Para solucionar este problema, obligue a la máquina virtual de Azure a usar un tamaño de sector de 4 KB y, a continuación, vuelva a instalar SQL Server.
Si SQL Server ya está instalado, desinstálelo. Si no, continúe con el paso siguiente.
Agregue la clave del registro ForcedPhysicalSectorSizeInBytes.
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>Reinicie la máquina virtual de Azure.
Reinstale SQL Server.
La siguiente captura de pantalla muestra la salida del comando fsutil fsinfo sectorinfo para la unidad E:, que tiene un tamaño de sector de 8 KB:
En la captura de pantalla siguiente se muestra la salida del mismo comando para la E: unidad después de agregar la clave del Registro para usar un tamaño de sector de 4 KB:
La ForcedPhysicalSectorSizeInBytes clave del Registro es una configuración de nivel de sistema operativo. Todas las unidades que están conectadas actualmente y las unidades que están conectadas más adelante, usen un tamaño de sector de 4 KB hasta que quite esta clave del Registro.