Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения: SQL Server, SQL Server на виртуальной машине Azure — Windows
Сводка
Эта статья поможет вам устранить проблему, возникающую при ручной установке экземпляра SQL Server на виртуальной машине Microsoft Azure под управлением Windows. При установке SQL Server на виртуальной машине Azure, использующем диск NVMe с размером собственного сектора размером более 4 КБ, установка завершается ошибкой, так как SQL Server файлы данных, такие как master.mdf не могут размещаться на томе с размером сектора 8 КБ. В этой статье объясняется, почему в более новых сериях виртуальных машин Azure возникает несоответствие размеров секторов и как принудительно задать размер сектора 4 КБ, чтобы SQL Server успешно установился на этот диск.
Симптомы
При установке экземпляра 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 на виртуальной машине Azure.
Причина
Эта проблема возникает из-за размера сектора на диске в некоторых типах виртуальных машин Azure. Новые Azure серии виртуальных машин, таких как Dadsv6, Eadsv6 и Fasv6, используют интерфейс хранилища только для NVMe и требуют образа ОС, поддерживающего NVMe. Эти серии виртуальных машин предоставляют диски с собственным размером сектора 8 КБ по умолчанию, которые SQL Server не поддерживает для файлов базы данных. SQL Server поддерживает диски с размерами собственного сектора размером 512 байт и 4 КБ. Если виртуальная машина Azure развернута с размером сектора 8 КБ, а затем установить SQL Server, установка может завершиться ошибкой. Дополнительные сведения см. в разделе Типы хранилищ для SQL Server.
Примечание.
Этот сценарий применяется только при установке SQL Server вручную на виртуальной машине Azure. Он не применяется при развертывании образа виртуальной машины SQL Server из Azure Marketplace, так как эти образы предварительно настроены для использования размера сектора 4 КБ.
Затронутые диски и типы виртуальных машин
Чаще всего в следующих сценариях отображается несоответствие размера сектора:
- Локальные диски NVMe серии виртуальных машин версии 6 (например, Dadsv6, Eadsv6, Easv6 и Fasv6), которые предоставляют размер собственного сектора в 8 КБ.
- Premium SSD v2 и Ultra Disk при создании диска с логическим размером сектора 4096 байт, если он предоставляется через узел, сообщающий о физическом размере сектора 8 КБ.
Стандартные HDD, стандартные SSD и SSD уровня "Премиум" (v1), подключаемые к виртуальным машинам более ранних серий, обычно имеют размер сектора 4 КБ и не подвержены этому влиянию.
Решение
Чтобы устранить эту проблему, принудительно задайте для виртуальной машины Azure размер сектора 4 КБ, а затем переустановите SQL Server.
Если SQL Server уже установлен, удалите его. В противном случае переходите к следующему шагу.
Добавьте ключ реестра ForcedPhysicalSectorSizeInBytes.
Убедитесь, что размер сектора составляет 4 КБ, выполнив следующую команду в командной строке с повышенными привилегиями:
fsutil fsinfo sectorinfo <volume pathname>Перезапустите виртуальную машину Azure.
Переустановите SQL Server.
На следующем снимку экрана показаны выходные данные fsutil fsinfo sectorinfo команды для E: диска с размером сектора 8 КБ:
На следующем снимке экрана показан результат выполнения той же команды для диска E: после добавления ключа реестра для использования размера сектора 4 КБ:
Раздел ForcedPhysicalSectorSizeInBytes реестра — это параметр уровня ОС. Все диски, которые подключены в настоящее время, а также любые диски, которые будут подключены позже, используют размер сектора 4 КБ до тех пор, пока вы не удалите этот ключ реестра.