Службе компонента database engine не удалось определить указанное местоположение файла
Я пытаюсь установить SQL Server Express 2012 с пакетом обновления 1 x 64 на Windows 7 с пакетом обновления 1 x 64. На этом компьютере ранее был установлен SQL Server Express 2012. Этот экземпляр был обновлен до SQL Server 2012 Standard, который с тех пор был удален.
Ниже приведены параметры, выбранные во время установки:
Включить обновления продукта SQL Server в установку - 2, связанные с KB 2793634
Установить все функции в каталоги по умолчанию
Именованный экземпляр SQLEXPRESS в корневом каталоге экземпляра по умолчанию
Учетные записи служб по умолчанию: ядро базы данных SQL Server -> служба NT \ MSSQL $ SQLEXPRESS
Конфигурация ядра СУБД по умолчанию
Установка завершается с ошибкой:
Статус
Корпорация Майкрософт подтверждает наличие этой проблемы в своих продуктах, которые перечислены в разделе "Применяется к".
Причина
Прежде чем можно будет использовать базу данных SQL Server, ее необходимо запустить. Процесс запуска базы данных включает в себя следующее:
- инициализацию различных структур данных, представляющих базу данных и ее файлы;
- открытие всех файлов, принадлежащих к базе данных;
- выполнение восстановления базы данных.
SQL Server использует функцию API CreateFile в Windows для открытия файлов, принадлежащих базе данных.
- В FCB::Open — произошла ошибка при попытке SQL Server открыть файл.
- FileMgr::StartPrimaryDataFiles — первичный файл данных или файл, принадлежащий первичной файловой группе.
- FileMgr::StartSecondaryDataFiles — файл, принадлежащий вторичной файловой группе.
- FileMgr::StartLogFiles — файл журнала транзакций.
- STREAMFCB::Startup — контейнер SQL FileStream.
- FCB::RemoveAlternateStreams
Полный физический путь к файлу.
Идентификатор файла, соответствующий файлу.
Код ошибки операционной системы и описание ошибки. В некоторых экземплярах вы увидите только код ошибки.
Обходное решение
Чтобы обойти эту проблему, используйте инструкцию RESTORE для восстановления базы данных. Для этого можно использовать любой из перечисленных способов.
НАЗВАНИЕ: Microsoft SQL Server 2012 с пакетом обновления 1 (SP1)
Я читал, что это может быть связано с поврежденной виртуальной учетной записью MSSQL $ SQLEXPRESS.
Summary.txt
Нет больше догадок. Вы собираетесь найти и прочитать файлы журнала установки. См. Просмотр и чтение файлов журнала установки SQL Server . Если вы не можете определить ошибку самостоятельно в журнале установки, опубликуйте журнал здесь.
Простое и полное решение ошибки «Не удалось найти дескриптор запуска ядра базы данных» по ссылке ниже. Причина ошибки может быть
1.Учетная запись, которую пользователь выбрал в окне страницы конфигурации сервера (во время установки), почему-то не может подключить службы ядра СУБД SQL Server к сети. Либо не хватает привилегий, либо он поврежден. Во время установки служб ядра СУБД SQL Server пытается подключить онлайновые службы баз данных как внутренний процесс, но из-за того, что учетная запись запуска либо повреждена, либо не имеет соответствующих привилегий, это не удается сделать, и в конечном итоге происходит сбой установки.
Решение может быть.
Полностью удалить SQL-сервер из программы Добавить удалить
Запустите установку, щелкнув по ней правой кнопкой мыши и выбрав «Запуск от имени администратора». После запуска установки и предоставления необходимых сведений вы перейдете на страницу конфигурации сервера. Когда вы перейдете на эту страницу, выберите начальную учетную запись для служб компонента Database Engine как NT Authority \ SYSTEM, которая также называется учетной записью локальной системы.
Большое спасибо, Шэнки. Я устанавливал и удалял много раз и становился очень расстроенным. Ваше решение изменить его на NT Authority \ SYSTEM работало как шарм.
После работы со службой технической поддержки Microsoft по этой проблеме мы определили, что деинсталляция SQL Server Standard и переустановка SQL Server Express оставляет учетную запись службы (в данном случае NT Service \ MSSQL $ SQLEXPRESS ) в состоянии, в котором она не находится. не имеют разрешения, необходимые для запуска службы.
Чтобы решить эту проблему, мы вручную просмотрели и добавили необходимые разрешения, указанные в разделе Настройка учетных записей и разрешений Windows Server в документации по SQL Server. Обратите внимание, что только некоторые из разрешений отсутствовали.
Спасибо за подсказку, это был блокатор для меня тоже. Будучи не в состоянии выяснить, как перенастроить эти права для учетных записей служб NT на станции Windows 7 (они не отображаются в управлении учетными записями, что в любом случае, похоже, не позволяет настраивать права), я решаю проблему, подавляя эти профили учетных записей. (Свойства компьютера, дополнительные параметры, параметры профиля пользователя, подавление профилей net service \ mssql, затем переход в папку пользователей, подавление их папок (требовалось получить права владения, перезагрузка, . ) и, наконец, переустановка.)
SQL Server не удалось открыть указанный файл из-за указанной ошибки ОС.
Если SQL Server не удается открыть базу данных и (или) файлы журнала транзакций, в событии приложения Windows или в журнале ошибок SQL Server может отобразиться ошибка 17204. Ниже приведен пример такой ошибки:
Эти ошибки могут возникнуть во время запуска экземпляра SQL Server или любой операции с базой данных, при которой выполняется попытка запустить базу данных (например, ALTER DATABASE). В некоторых сценариях могут возникать ошибки 17204 и 17207, а в некоторых — лишь одна из них.
Если такие ошибки происходят в пользовательской базе данных, она остается в состоянии RECOVERY_PENDING, а приложения не могут получить доступ к базе данных. Если такие ошибки происходят в системной базе данных, экземпляр SQL Server не запускается и вы не можете подключиться к SQL Server. Сбой системной базы данных может привести к переходу ресурса отказоустойчивого кластера SQL Server в автономный режим.
Действие пользователя
Для устранения ошибки 17204 необходимо узнать соответствующий код ошибки операционной системы. А затем выполнить диагностику этой ошибки. После устранения ошибки операционной системы можно попытаться перезапустить базу данных (например, с помощью инструкции ALTER DATABASE SET ONLINE) или экземпляр SQL Server, чтобы перевести затронутую базу данных в режим "в сети". Иногда устранить ошибку операционной системы не удается. В таком случае необходимо выполнить определенные корректирующие действия. Мы обсудим их в этом разделе.
В случае возникновения ошибки операционной системы 5 ( Access is Denied ), рассмотрите следующие методы устранения:
Проверьте учетную запись пользователя, от имени которой сейчас запущена служба SQL Server. Для получения этих сведений можно использовать диспетчер задач Windows. Найдите значение "Имя пользователя" для исполняемого файла "sqlservr.exe". Если вы недавно изменили учетную запись службы SQL Server, поддерживаемым способом выполнения этой операции является использование служебной программы "Диспетчер конфигурации SQL Server". Дополнительные сведения см. в статье Диспетчер конфигурации SQL Server.
В зависимости от типа операции — открытие баз данных во время запуска сервера, присоединение базы данных, восстановление базы данных и т. д. — учетная запись, используемая для олицетворения и получения доступа к файлу базы данных, может варьироваться. Сведения о том, какая операция позволяет задавать разрешения к каким учетным записям, см. в статье Защита данных и файлов журналов. Используйте такие средства, как Process Monitor, чтобы узнать, каким образом предоставляется доступ к файлу: в контексте безопасности учетной записи запуска службы экземпляра SQL Server (или идентификатора безопасности службы) либо олицетворенной учетной записи.
Если SQL Server олицетворяет учетные данные пользователя, выполняющего операцию ALTER DATABASE или CREATE DATABASE, в средстве Process Monitor отобразятся следующие сведения (пример):
Если вы получаете ошибку ОС The system cannot find the file specified = 3
Если возникает ошибка операционной системы The process cannot access the file because it is being used by another process = 32
В этой статье описана процедура предоставления компоненту Компонент SQL Server Database Engine доступа к расположению в файловой системе, где хранятся файлы базы данных. Служба компонента Компонент Database Engine должна иметь разрешение файловой системы Windows для доступа к папке, в которой хранятся файлы базы данных. Разрешение на расположение по умолчанию задается во время установки. Если файла базы данных размещаются в другом расположении, то необходимо выполнить эти действия, чтобы предоставить компоненту Компонент Database Engine разрешение полного доступа к этому расположению.
Начиная с версии SQL Server 2012 (11.x), разрешения назначаются идентификатору безопасности каждой из служб. Эта система позволяет обеспечить изоляцию и всестороннюю защиту службы. Идентификатор безопасности службы создается на основе имени службы и является уникальным для каждой службы. В статье Настройка учетных записей и разрешений службы Windows описывается идентификатор безопасности каждой службы доступа, а имена перечисляются в разделе Права и привилегии Windows. Разрешение на доступ к расположению файла назначается именно идентификатору безопасности службы.
Ссылки
Дополнительные сведения о служебной программе sqlcmd. exe можно найти на веб-сайте Microsoft Developer Network (MSDN) по следующему адресу:
05.03.2019
itpro
SQL Server
комментариев 5
Столкнулся с интересной ошибкой при установке MS SQL Server 2014 на новом сервере Windows Server 2012 R2. Установка SQL Server прерывается почти в самом конце с ошибкой «Не найден дескриптор запуска компонента Database Engine» (Could not find the Database Engine startup handle).
В логе установки Summary.txt при этом присутствует ошибка:
Данная ошибка установки MS SQL Server связана с тем, что используются стандартные настройки установки, при котором служба SQL Server запускается под непривилегированной учетной записью NT Service\MSSQL$V2014. У данной учетной записи может быть недостаточно полномочий для запуска службы SQL Server, поэтому запустить службу невозможно, и установщик завершается с ошибкой «Could not find the Database Engine startup handle». Также эта ошибка может указывать на то, что ранее на компьютере уже пытались установить SQL Server и не очистили файлы и службы, оставшиеся от предыдущей установки.
- Корректно деинсталлируйте все программы, связанные с SQL Server через Панель управления и перезагрузите сервер (проверьте, что не осталось файлов и папок в каталоге C:\Program Files\Microsoft SQL Server\MSSQL12.xxx);
- Запустите чистую установку из дистрибутива SQL Server. На вкладке «Server Configuration» убедитесь, что служба SQL Server Database Engine запускается под учетной записью NT Service\MSSQLSERVER;
После окончания установки настоятельно рекомендуем изменить учетную запись, под которой запускается служба 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). Укажите пароль пользователя и сохраните изменения;
- Перезапустите службы SQL Server.
Способ 2: использование служебной программы sqlcmd. exe для выполнения инструкции RESTORE
Выберите в меню Пуск пункт Выполнить, введите команду cmd и нажмите кнопку ОК.
Выполните команду, подобную следующей:
Примечание. В этом операторе представляет имя сервера, на котором запущен экземпляр SQL Server 2005; представляет имя экземпляра SQL Server 2005; — имя учетной записи SQL Server, которая используется для подключения к экземпляру SQL Server 2005; и представляет пароль для идентификатора входа SQL Server.
Запустите инструкцию RESTORE. Это можно сделать одним из описанных ниже способов.
Чтобы восстановить всю базу данных из файла резервной копии базы данных, используйте инструкцию, подобную приведенной ниже:
Примечание. В этом операторе представляет имя базы данных, в которую вы хотите восстановить, — путь к файлу резервной копии базы данных, а — имя файла резервной копии.
Чтобы восстановить определенный файл из файла резервной копии базы данных, используйте инструкцию, подобную приведенной ниже:
Примечание. В этом операторе — имя файла, который нужно восстановить.
Предоставление разрешение на доступ к файловой системе идентификатору безопасности службы
С помощью проводника Windows перейдите в папку файловой системы, в которой находятся файлы базы данных. Правой кнопкой мыши щелкните эту папку и выберите пункт Свойства.
На вкладке Безопасность выберите Изменить, а затем ― Добавить.
В диалоговом окне Выбор пользователей, компьютеров, учетных записей служб или групп выберите Расположения, в начале списка расположений выберите имя своего компьютера и нажмите кнопку ОК.
В поле Введите имена объектов для выбора введите имя идентификатора безопасности службы. Сведения о получении идентификатора см. в статье Настройка учетных записей службы Windows и разрешений. (В качестве идентификатора безопасности службы компонента Компонент Database Engine используйте NT SERVICE\MSSQLSERVER для экземпляра по умолчанию или NT SERVICE\MSSQL$InstanceName — для именованного экземпляра.)
В поле имен Группа или пользователь выберите имя идентификатора безопасности службы, а затем в поле Разрешения для установите флажок Разрешить для параметра Полный доступ.
В SQL Server Management Studio используется идентификатор входа SQL Server, который имеет роль сервера dbcreator для подключения к экземпляру Microsoft SQL Server 2005.
Вы пытаетесь восстановить базу данных из файла резервной копии базы данных.
C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\BackupCannot доступ к указанному пути или файлу на сервере. Убедитесь в том, что у вас есть необходимые права доступа и что путь или файл существует. Если вы знаете, что учетная запись службы может получить доступ к определенному файлу, введите полный путь к файлу в элементе управления "имя файла" в диалоговом окне "Поиск".
Службе компонента Database Engine не удалось разрешить указанное расположение файла. Расположение не существует или текущая учетная запись пользователя не имеет доступа к ней. Убедитесь в том, что расположение файла существует и у пользователя есть разрешения на доступ к ней.
Способ 1: запуск инструкции RESTORE в среде SQL Server Management Studio
Запустите центр SQL Server Management Studio и подключитесь к экземпляру SQL Server 2005.
Запустите инструкцию RESTORE. Это можно сделать одним из описанных ниже способов.
Чтобы восстановить всю базу данных из файла резервной копии базы данных, используйте инструкцию, подобную приведенной ниже:
Примечание. В этом операторе представляет имя базы данных, в которую вы хотите восстановить, — путь к файлу резервной копии базы данных, а — имя файла резервной копии.
Чтобы восстановить определенный файл из файла резервной копии базы данных, используйте инструкцию, подобную приведенной ниже:
Примечание. В этом операторе — имя файла, который нужно восстановить.
Дополнительная информация
Чтобы открыть диалоговое окно Указание резервной копии , выполните указанные ниже действия.
Откройте центр SQL Server Management Studio и подключитесь к экземпляру SQL Server 2005.
Щелкните правой кнопкой мыши базу данныхи выберите командуВосстановление базы данных или Восстановление файлов и файловых групп.
В диалоговом окне Восстановление базы данных или в диалоговом окне Восстановление файлов и файловых групп щелкнитес устройства, а затем нажмите кнопку с многоточием. (Кнопка с многоточием состоит из трех точек.)
Читайте также: