Поделиться через


SQL Server на виртуальной машине Azure не удается установить или экземпляр SQL Server не может быть запущен.

Эта статья поможет устранить следующие сценарии:

  • Не удается развернуть образ SQL Server из Azure Marketplace на виртуальной машине Azure.
  • Экземпляр SQL Server не запускается после перезапуска или высвобождения виртуальной машины Azure.

Область применения: SQL Server на виртуальных машинах Azure

Замечание

Расследование этого вопроса активно продолжается. Сведения в этой статье могут быть изменены по мере того, как новые сведения становятся доступными.

Симптомы

Если вы столкнулись с этой проблемой, скорее всего, вы увидите следующее:

  • Сбой развертываний SQL Server на виртуальных машинах Azure при использовании образа Azure Marketplace.
  • SQL Server не запускается после перезагрузки виртуальной машины Azure для вручную установленных экземпляров SQL Server.

Сбой развертывания SQL Server на виртуальной машине Azure

При попытке развернуть SQL Server на образе виртуальной машины Azure из Azure Marketplace развертывание завершается со статусом Conflict и следующей ошибкой:

Системный диск вернул состояние, не готовое к использованию.

Например, если вы развертываете образ на портале Azure, может появиться следующая ошибка для развертывания в журнале действий:

Снимок экрана: ошибка развертывания на портале Azure.

Предупреждение

При возникновении этого сбоя развертывание виртуальной машины Azure завершается успешно, но установка SQL Server завершается сбоем. Чтобы избежать расходов, необходимо удалить виртуальную машину. Повторно разверните виртуальную машину с помощью одного из методов, описанных в разделах"Решение" или "Обходные пути".

SQL Server не удается выполнить подключение после перезапуска виртуальной машины

Эта проблема может появиться после выполнения следующей последовательности событий:

  1. Вы развертываете виртуальную машину Azure из списка затронутых виртуальных машин .
  2. Вы вручную устанавливаете экземпляр SQL Server на виртуальную машину Azure.
  3. Вы настраиваете базу данных SQL Server tempdb для использования локального эфемерного хранилища SSD (как правило, D: диска).
  4. Ваша виртуальная машина перезапущена или высвобождена.
  5. Ваш экземпляр SQL Server не может запуститься.

Если возникла эта проблема, в журнале ошибок 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.

Причина

Некоторые из новейших размеров виртуальных машин Azure предоставляют локальный том SSD в формате RAW для временного хранилища, настроенного с помощью интерфейса NVMe. Эта конфигурация приводит к сбоям, так как SQL Server пытается разместить tempdb базу данных в эфемерном хранилище и завершается ошибкой, так как локальный том SSD недоступен. Кроме того, эфемерное хранилище отображается как RAW после того, как виртуальная машина освобождена от ресурсов.

Локальный том SSD в формате RAW приводит к сбою развертывания виртуальной машины SQL и предотвращает подключение экземпляров SQL Server вручную после перезапуска виртуальной машины. В обоих случаях SQL Server пытается инициализировать tempdb базу данных в эфемерном хранилище, которое недоступно. Развертывание завершается ошибкой, так как SQL Server устанавливается во время развертывания виртуальной машины Azure, а эфемерное хранилище недоступно. Аналогичным образом, вручную установленные экземпляры SQL Server не запускаются после перезапуска виртуальной машины, так как эфемерное хранилище недоступно, поскольку SQL Server пытается создать базу данных tempdb.

Решение

Эта проблема возникает из-за выбранного размера виртуальной машины Azure. Чтобы устранить проблему, используйте один из следующих методов:

  • По возможности используйте другой номер SKU виртуальной машины, например номера SKU, перечисленные в рекомендациях по размеру виртуальной машины.
  • Если вы хотите использовать определенную виртуальную машину, расположенную в списке затронутых виртуальных машин , используйте компьютер без нижнего регистра d в имени, который размещается tempdb в том же хранилище, что и файлы данных SQL Server. Например, используйте размер виртуальной FXmsv2 машины вместо FXmdsv2. Последний использует неинициализированное эфемерное хранилище, как указано d в имени.

Обходной путь

Если вы не можете использовать другую конфигурацию виртуальной машины без локального SSD-диска RAW, рассмотрите следующие обходные пути.

  • Разверните виртуальную машину с помощью образа только для Windows Server, форматирования и инициализации временного диска NVMe, а затем вручную установите SQL Server.

    • Если вы решили поместить tempdb на локальный SSD, необходимо повторно инициализировать диск перед запуском SQL Server при каждом перезапуске или освобождении виртуальной машины.
  • Разверните образ виртуальной машины SQL Server, но настройте tempdb для использования другого диска, отличного от эфемерного хранилища во время развертывания. Например, можно сконфигурировать tempdb для использования диска или диска удаленного хранилища C:.

    1. Этот параметр можно настроить на странице параметров SQL Server на портале Azure при развертывании образа виртуальной машины SQL Server.

    2. В разделе "Конфигурация хранилища" выберите "Изменить конфигурацию ", чтобы открыть область "Настройка хранилища ".

    3. Разверните хранилище tempdb и выберите любой вариант, отличный отUse local SSD drive:

      Снимок экрана: конфигурация хранилища tempdb на портале Azure при развертывании образа виртуальной машины SQL.

Затронутые виртуальные машины

Эта проблема возникает с виртуальными машинами, которые развертывают неинициализированный временный диск, например следующие размеры виртуальных машин:

Intel Gen 10.2 AMD 9.1-го поколения
Dldsv6 Daldsv6
Ddsv6 Dadsv6
Edsv6 Eadsv6
Lsv3 — все виртуальные машины Azure
Fxmdsv2

Замечание

Убедитесь, что виртуальная машина не настроена с использованием размера сектора, превышающего 4 КБ перед установкой SQL Server.