Вопрос:
Экземпляр SQL Server 2012 Express как-то поврежден.
Я подозреваю, что это каким-то образом связано с моим использованием Entity Framework, но у меня пока нет доказательств.
При попытке восстановить экземпляр процесс восстановления застрял на шаге SqlEngineConfigAction_repair_validation_Cpu64.
Это было на этом этапе долгое время без заметного использования процессора, поэтому я, наконец, отменил процесс восстановления.
При попытке удалить экземпляр процесс деинсталляции завис на шаге SqlEngineConfigAction_remove_validation_Cpu64.
При попытке установить второй экземпляр процесс установки завис на шаге SqlEngineDBStartConfigAction_install_configrc_Cpu64.
Для некоторых попыток службы SQL Server не были предварительно остановлены вручную. Для других попыток службы были остановлены вручную и изменены с “Автоматически” на “Ручной”.
Симптомы повреждения базы данных, если это помогает:
Служба “SQL Server (SQLEXPRESS)” имеет статус “Запущено” при перезагрузке системы, но застревает в состоянии “Запуск”, когда служба перезапускается вручную с помощью параметра “Перезапуск”.
Когда служба останавливается и запускается вручную, она отображает эту ошибку:
Windows не удалось запустить службу SQL Server (SQLEXPRESS) на локальном компьютере. Ошибка 1053: служба не ответила на запрос запуска или управления своевременно.
SSMS (SQL Server Management Studio) не удается подключиться к экземпляру. Он либо пытается вечно без таймаута или ошибки, либо отображает эту ошибку:
Соединение с сервером было успешно установлено, но во время рукопожатия перед входом в систему произошла ошибка. (поставщик: поставщик SSL, ошибка: 0 – время ожидания операции истекло.) (Microsoft SQL Server, ошибка: 258)
РЕДАКТИРОВАТЬ: я предполагаю, что голосование против было, потому что это не было указано в форме вопроса. Таким образом, чтобы уточнить, вопрос заключается в том, как решить проблему зависания процесса восстановления, удаления или установки?
РЕДАКТИРОВАТЬ 2: Как следствие, выясняется, что основной причиной повреждения было выключение компьютера с Windows 7 без предварительной явной остановки служб SQL Server, даже несмотря на то, что в то время SQL Server Express активно не использовался.
EDIT3: проблема, кажется, была решена в SQL Server 2014 Express.
Лучший ответ:
Вот что сработало для меня.
Решение 1:
– Остановить службы SQL Server (SQLEXPRESS) и SQL Server VSS Writer и установите для их типа запуска “Руководство”.
– Перезагрузите компьютер.
– Запустите процесс ремонта.
– Измените тип запуска на “Автоматически” и перезапустите службы.
Решение 2:
– Остановите службы SQL Server (SQLEXPRESS) и “SQL Server VSS Writer” и установите для параметра “Тип запуска” значение “ Отключено“.
– Перезагрузите компьютер.
– Запустите процесс удаления, чтобы полностью удалить SQL Server Express (экземпляры + общие компоненты).
– Перезагрузите компьютер снова.
– [Необязательно] Запустите свой любимый очиститель реестра, такой как CCleaner.
– Установите SQL Server Express (если только ваша цель – просто удалить его).
ПРИМЕЧАНИЕ. В сценарии Solution 2 я попытался восстановить процесс после первого перезапуска ПК, но он застрял на шаге SqlEngineConfigAction_repair_validation_Cpu64.
Ответ №1
В моем случае причиной того, что деинсталлятор застрял в SqlEngineConfigAction_repair_validation_Cpu64, были недопустимые пути к файлам в системных таблицах SQL Server.
Чтобы исправить это, разрешив удаление, это сработало для меня:
1) Задание службы для использования локальной учетной записи (Пуск → Локальные службы → SQL-Server- > Свойства → Вход в систему → Аккаунт локальной системы)
2) Выполните следующие шаги:
https://social.technet.microsoft.com/wiki/contents/articles/31786.sql-server-not-starting-after-fresh-installation.aspx
3) Повторно удалите.
В случае, если вышеуказанная ссылка становится недоступной, здесь короткое резюме:
- Запустите службу SQL-сервера в режиме восстановления:
NET START MSSQL$SQLEXPRESS /f /T3608 - Подключение к серверу: SQLCMD -S .SQLEXPRESS
- Список файлов, указанных в системной таблице:
SELECT name, physical_name, state_desc FROM sys.master_files ORDER BY database_id; (go) - Если путь к файлу указывает на что-то недействительное (например, отсутствующий диск), отрегулируйте его, используя следующее: ALTER DATABASE model MODIFY FILE ( NAME = modeldev, FILENAME = ‘C:Program FilesMicrosoft SQL ServerMSSQL13.SQLEXPRESS01MSSQLDATAmodel.mdf’);
(идти)
Обратите внимание, что файлы имеют разные ИМЯ и разные расширения (.mdf,.ldf) - Выход из SQL-сервера (выход)
- Выключите службу NET STOP MSSQL$SQLEXPRESS
Ответ №2
У меня были установлены две версии SQL Server. После удаления он завис на SqlEngineConfigAction_remove_validation_Cpu64. Решение, которое работало для меня, состояло в том, чтобы просто запустить удаление с носителя. Я думаю, после удаления одной версии это испортило файлы удаления; поэтому другие удаления из панели управления добавить удалить заморозить. так я смонтировал SQLServer iso и запустил оттуда
setup.exe /Action=Uninstall
Не забудьте удалить все другие записи SQL Server из программы “Установка и удаление программ” (конечно, за исключением записи, которая вызывает проблему, то есть Microsoft SQL Server 2008 R2 (64-разрядная версия)).
К вашему сведению:
- Я выполнил setup.exe/Action = Uninstall из cmd (Запуск от имени администратора) в смонтированной папке iso.
- Также, пожалуйста, перезапустите после удаления других записей. так что все службы SQL остановлены.
- Убедитесь, что все службы сервера SQL либо остановлены, либо отключены до перезапуска.