Compartir a través de


SQL Server en una máquina virtual de Azure no se despliega o la instancia de SQL Server no se inicia.

Este artículo le ayuda a resolver los siguientes escenarios:

  • No se puede implementar una imagen de Azure Marketplace en una máquina virtual (VM) de SQL Server en Azure.
  • Una instancia de SQL Server no se puede conectar después de reiniciar o desasignar una máquina virtual de Azure.

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

Nota:

La investigación de este problema está en curso activamente. La información de este artículo está sujeta a cambios a medida que haya nuevos detalles disponibles.

Síntomas

Si encuentra este problema, es probable que vea lo siguiente:

  • Se produce un error en las implementaciones de SQL Server en máquinas virtuales de Azure al usar una imagen de Azure Marketplace.
  • SQL Server no se puede conectar después de reiniciar una máquina virtual de Azure para las instancias instaladas manualmente de SQL Server.

Se produce un error en la implementación de SQL Server en máquinas virtuales de Azure

Al intentar implementar una imagen de máquina virtual de SQL Server en Azure desde Azure Marketplace, se produce un error en la implementación con el estado Conflict y el siguiente error:

La unidad del sistema indicó que no estaba lista para su uso.

Por ejemplo, si está implementando una imagen desde el portal de Azure, es posible que vea el siguiente error para la implementación en registro de actividad:

Captura de pantalla del error de implementación en Azure Portal.

Advertencia

Cuando se produce este error, la implementación de la máquina virtual de Azure se realiza correctamente, pero se produce un error en la instalación de SQL Server. Debe eliminar la máquina virtual para evitar incurrir en cargos. Vuelva a implementar la máquina virtual mediante uno de los métodos descritos en las secciones Resolución o Soluciones alternativas .

SQL Server no se puede conectar después de reiniciar la máquina virtual

Es posible que vea este problema después de seguir esta secuencia de eventos:

  1. Implemente una máquina virtual de Azure desde la lista de máquinas virtuales afectadas .
  2. Instale manualmente una instancia de SQL Server en la máquina virtual de Azure.
  3. Configuras tu base de datos de SQL Server tempdb para usar el almacenamiento efímero de SSD local (normalmente, la unidad D:).
  4. La máquina virtual se reinicia o desasigna.
  5. La instancia de SQL Server no se puede conectar.

Si se produce este problema, es posible que vea el siguiente error en el registro de errores de SQL Server:

CREATE FILE encountered operating system error 3(The system cannot find the path specified.) 
while attempting to open or create the physical file 'D:\SQLTemp\tempdb.mdf'.
Error: 17204, Severity: 16, State: 1. FCB::Open failed: Could not open 
file D:\SQLTemp\tempdb.mdf for file number 1. OS error: 
3(The system cannot find the path specified.).
Error: 5120, Severity: 16, State: 101.
Unable to open the physical file "D:\SQLTemp\tempdb.mdf". Operating system error 3:
"3(The system cannot find the path specified.)".
Error: 1802, Severity: 16, State: 4 CREATE DATABASE failed. 
Some file names listed could not be created. Check related errors.
Could not create tempdb. You may not have enough disk space available.
Free additional disk space by deleting other files on the tempdb drive and then restart SQL Server. 
Check for additional errors in the event log that may indicate why the 
tempdb files could not be initialized.

Causa

Algunos de los tamaños de máquina virtual de Azure más recientes presentan un volumen SSD local RAW para el almacenamiento efímero configurado con la interfaz Express de memoria no volátil (NVMe). Esta configuración produce errores porque SQL Server intenta colocar la tempdb base de datos en el almacenamiento efímero y produce un error porque el volumen SSD local no está disponible. Además, el almacenamiento efímero se muestra como RAW después de desasignar la máquina.

El volumen SSD local RAW hace que se produzca un error en la implementación de la máquina virtual de SQL y evita que las instancias de SQL Server instaladas manualmente se conecten después de reiniciar la máquina virtual. En ambos casos, SQL Server intenta inicializar la tempdb base de datos en el almacenamiento efímero, que no está disponible. Se produce un error en la implementación porque SQL Server se instala durante la implementación de la máquina virtual de Azure y el almacenamiento efímero no está disponible. Del mismo modo, las instancias instaladas manualmente de SQL Server no se pueden conectar después de reiniciar la máquina virtual porque el almacenamiento efímero no está disponible cuando SQL Server intenta crear la tempdb base de datos.

Solución

Este problema se produce debido al tamaño de máquina virtual de Azure seleccionado. Para resolver el problema, use uno de los métodos siguientes:

  • Si es posible, use otra SKU de máquina virtual, como las SKU enumeradas en los procedimientos recomendados de tamaño de máquina virtual.
  • Si desea usar una máquina virtual determinada que se encuentra en la lista de máquinas virtuales afectadas , use una máquina sin minúsculas d en el nombre, que coloca tempdb en el mismo almacenamiento que los archivos de datos de SQL Server. Por ejemplo, use el tamaño de VM FXmsv2 en lugar de FXmdsv2. Este último usa almacenamiento efímero no inicializado, como se indica d en el nombre.

Solución

Si no puede usar otra SKU de máquina virtual sin un SSD local RAW, tenga en cuenta las siguientes soluciones alternativas:

  • Implemente la máquina virtual con una imagen solo de Windows Server, dé formato e inicialice la unidad NVMe temporal y, a continuación, instale manualmente SQL Server.

    • Si decide colocar tempdb en la SSD local, debe reinicializar el disco antes de iniciar SQL Server cada vez que se reinicie o desasigne la máquina virtual.
  • Implemente la imagen de máquina virtual con SQL Server, pero configure tempdb para usar una unidad diferente al almacenamiento efímero durante la implementación. Por ejemplo, puede configurar tempdb para usar el C: o la unidad de almacenamiento remoto.

    1. Puede configurar esta opción en la página de configuración de SQL Server de Azure Portal al implementar la imagen de máquina virtual con SQL Server.

    2. En Configuración de almacenamiento, seleccione Cambiar configuración para abrir el panel Configurar almacenamiento .

    3. Expanda almacenamiento de tempdb y elija cualquier opción distinta deUse local SSD drive:

      Captura de pantalla de la configuración de almacenamiento de tempdb en Azure Portal al implementar una imagen de máquina virtual con SQL.

Máquinas virtuales afectadas

Este problema se produce con máquinas virtuales que implementan una unidad temporal sin inicializar, como los siguientes tamaños de máquina virtual:

Intel Gen 10.2 AMD Gen 9.1
Dldsv6 Daldsv6
Ddsv6 Papásv6
Edsv6 Eadsv6
Lsv3 : todas las máquinas virtuales de Azure
Fxmdsv2

Nota:

Asegúrese de que la máquina virtual no está configurada con un tamaño de sector superior a 4 KB antes de instalar SQL Server.