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


Сбой установки SQL Server с ошибкой размера сектора на виртуальной машине Azure Windows Server 2022

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

Область применения: SQL Server, SQL Server на виртуальной машине Azure — Windows

Симптомы

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

Не удается использовать файл "...\master.mdf", так как он был первоначально отформатирован с размером сектора 4096 и теперь находится на томе с размером сектора 8192. Переместите файл на том, размер сектора которого не превышает исходный размер сектора.

Кроме того, можно просмотреть следующие сведения в файле журнала Summary.txt в папке установки 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.

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

Причина

Эта проблема возникает из-за конфигурации размера сектора диска на определенных виртуальных машинах Azure. Некоторые из последних поколений виртуальных машин Azure (например, Da, Ea и Fav6) имеют интерфейс хранилища только для NVMe и требуют образа ОС, поддерживающего NVMe. Однако эти последние поколения виртуальных машин Azure развертываются с размером по умолчанию 8 КБ, который в настоящее время не поддерживается SQL Server. В настоящее время SQL Server поддерживает диски со стандартными размерами собственного сектора в 512 байтах и 4 КБ.

Примечание.

Non-Volatile Memory Express (NVMe) — это протокол связи, который упрощает и более эффективную передачу данных между серверами и системами хранения с помощью ненезависимой памяти (NVM). С помощью NVMe данные можно передавать по максимальной пропускной способности и с самым быстрым временем отклика.

Если виртуальная машина Azure развертывается с использованием размера сектора 8 КБ и пытаетесь установить SQL Server после развертывания, установка может завершиться ошибкой.

Примечание.

Этот сценарий возникает только при ручной установке SQL Server на виртуальной машине Azure, но не при развертывании виртуальной машины SQL Server из Azure Marketplace. Образы Azure Marketplace предварительно настроены для использования размера сектора 4 КБ.

Решение

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

Чтобы успешно установить SQL Server на виртуальной машине Azure, выполните следующие действия.

  1. Если вы уже установили SQL Server, удалите SQL Server. В противном случае переходите к следующему шагу.

  2. Добавьте раздел реестра ForcedPhysicalSectorSizeInBytes.

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

    fsutil fsinfo sectorinfo <volume pathname>

  4. Перезапустите виртуальную машину Azure.

  5. Переустановите SQL Server.

На следующем снимку экрана показаны выходные данные fsutil fsinfo sectorinfo команды для E: диска с размером 8 КБ:

Снимок экрана: выходные данные командной строки размером 8 КБ.

На следующем снимка экрана показан вывод fsutil fsinfo sectorinfo команды для E: диска после обновления раздела реестра, чтобы использовать размер сектора 4 КБ:

Снимок экрана: выходные данные командной строки с размером 4 КБ.

Раздел ForcedPhysicalSectorSizeInBytes реестра — это параметр уровня ОС, что означает, что все диски, подключенные в настоящее время, и присоединенные в будущем, используют размер сектора размером 4 КБ, если этот раздел реестра не удален.