Столкнулся со странной ошибкой при установке MS SQL Server 2019 на Windows Server 2022. Установка SQL Server прерывается с ошибкой Не найден дескриптор запуска компонента Database Engine (
Could not find the Database Engine startup handle
).
В логе установки Summary.txt при этом присутствует ошибка:
Feature: Database Engine Services Status: Failed: see logs for details 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 2022 Express edition:
Unable to install SQL Server Exit code: -2061893607 Error description: Could not find the Database Engine Startup handle.
Возможные причины ошибки установки SQL Server:
- У учетной записи SQL Server недостаточно прав для запуска службы Database Engine.
- Диск, на который устанавливается SQL Server, отформатирован с размером сектора более 4 Кб (проблема характерна для Windows 11 и Windows Server 2022)
- На сервере отключена поддержка протокола TLS2 (требуется для SQL Server 2016 и новее)
- На компьютере установлен КриптоПро (удалите его перед установкой SQL Server)
С настройками установки Microsoft SQL Server по-умолчанию для запуска службы SQL Server используется непривилегированная учетная запись вида
NT Service\MSSQLSERVER
. У этой учетной записи может быть недостаточно прав для запуска службы SQL Server, поэтому, когда установщик не может запустить службу, он завершается ошибкой Could not find the Database Engine startup handle.
Чтобы исправить ошибку установки SQL Server:
- Корректно удалите все компоненты SQL Server через Панель управления и перезагрузите сервер. После удаления проверьте, что в системе не осталось компонентов SQL Server:
wmic product get Name,IdentifyingNumber | findstr /i "SQL"
Если компоненты остались, удалите их по их GUID с помощью команды:
msiexec /x {guid}
Затем проверьте, что не осталось файлов и папок в каталогеC:\Program Files\Microsoft SQL Server\MSSQLxx.xxx
); - Запустите чистую установку из дистрибутива SQL Server. На вкладке «Server Configuration» измените учетную запись, под которой запускается SQL Server Database Engine с
NT Service\MSSQLSERVER
на NT AUTHORITY\SYSTEM - Продолжите установку SQL Server. Ошибка больше не должна появляться.
После того, как установка завершена, в целях безопасности измените учетную запись, под которой запускается служба SQL Server Database Engine на непривилегированную учетную запись. Эта учетная запись не обязательно должна обладать правами локального администратора сервера (ей будет достаточно полномочий внутри SQL Server). Можно использовать аккаунты с правами sysadmin:
NT Service\MSSQLSERVICE
или
NT Service\SQLSERVERAGENT
, или доменную учетную запись. Чтобы изменить учетную запись, под которой работает SQL Server:
- Запустите SQL Server Configuration Manager и перейдите в раздел SQL Server Services;
- Щелкните по SQL Server (MSSQLSERVER), нажмите кнопку Browse и в поле This account укажите учетную запись, под которой нужно запускать службу или используйте управляемую учетную запись — gMSA (Group Managed Service Accounts). Укажите пароль пользователя и сохраните изменения; Для указанной учетной записи должны быть предоставлены права для входа в качестве службы. Опция GPO Log on as a service в Computer Configuration -> Windows Settings -> Security Settings -> Local Policies -> User Rights Assignment.
- Перезапустите службы SQL Server.
Другая возможная причина ошибки установки SQL Server в Windows 11 и Windows Server 2022 – попытка поместить файлы базы данных master на диск, отформатированный с размером сектора более 4 Кб. В этом случае в логе SQLServer_ERRORLOG_ будет присутствовать такая ошибка:
Cannot use file C:\MSSQL.MSSQLSERVER\MSSQL\DATA\master.mdf because it was originally formatted with sector size 4096 and is now on a volume with sector size 16384. Move the file to a volume with a sector size that is the same as or smaller than the original sector.
Проверьте размер сектора (Allocation unit size) на диске:
fsutil fsinfo sectorinfo c:
В этом примере значение размера сектора PhysicalBytesPerSectorForPerformance более 4Кб.
Чтобы исправить проблему, нужно отформатировать том, на котором будет располагаться база Master с размером кластера 4Кб и установить SQL Server на другой диск. В качестве обходного решения можно задать параметр реестра, который будет эмулировать как будто на диске используется размер сектора 4Кб (Troubleshoot errors related to system disk sector size greater than 4 KB)
REG ADD "HKLM\SYSTEM\CurrentControlSet\Services\stornvme\Parameters\Device" /v "ForcedPhysicalSectorSizeInBytes" /t REG_MULTI_SZ /d "* 4095" /f
Перезагрузите компьютер и выполните обычную установку SQL Server.
Также проверьте, что на компьютере Windows, на который вы пытаетесь установить SQL Server, включена поддержка протокола шифрования TLS 1.2. Его наличие обязательно для установки SQL Server 2016 и более поздних версий (SQL Server 2017, 2019 и 2022). Проверьте, что TLS 1.2 включен можно с помощью утилиты
IISCrypto
(см. как включить поддержку протокола TLS 1.2 в Windows).
Итак, мы рассмотрели возможные способы исправить ошибку «Не найден дескриптор запуска компонента Database Engine» при установке любых версий SQL Server.
Спасибо Вам, очень помогли!
спасибище тебе безразмерное!
А как решить проблему, если я устанавливаю SQL кластер (2019), и у меня такая же ошибка.
Только вот он не может запускаться от данных учетных записей, только от доменной.
почему? создайте локальную учетную запись с правами локального администратора и запустите службу. все должно получиться. ну и убедитесь что у учетной записи есть права на вход в качестве службы.
Спасибо огромное, решение помогло!
Четко и по делу!
День мучался, спасибо большое выручил!
Спасибо большое!! SQL Server 2022 года также устанавливается с этим решением.
Если изначально SQL был успешно установлен и служба запускалась от имени NT Service\MSSQLSERVICE, то в папки с базами данных и журналом прописывается учетка MSSQLSERVER с полным доступом (вкладка безопасность).
Если я создам локальную windows учетку на сервере и переделаю запуск службы SQL на эту учетку, то мне потребуется прописывать эту учетку в папки с БД и журналом или она сама пропишется?
Насколько я помню, вручную не придется править NTFS ACL.
Спасибо огромное, решили мою проблему. Желаю добра и счастья автору статьи:)
Не нашел тут решения моей проблемы, так как у меня установка на Windows 10. Но один индус 6 лет назад в ютубе разместил видео, как вылечить проблему. Он почистил реестр (удалил ветку MSQSL Server), но это, скорее всего было лишним. А в качестве пользователя указал LOCAL SERVICE — и всё заработало!
Была та-же ошибка, но мне помогло удаление Крипто-Про с сервера.
Ошибка Could not find the Database Engine startup handle
может возникнуть и при переустановке.
Вот эта же причина была. SQL 2022 — крипто про 4.9 . сейчас надо пробовать с 5кой