понедельник, 26 ноября 2012 г.

Ошибка при установке SQL-сервера "No feature were uninstalled during the setup execution"

Сегодня у нас знаменательный день - согласно нашей статистике число клиентов, которые перешли на 3-ю версию ЛЭРС УЧЕТ сегодня перевалило за 50% :)

Процесс миграции отработан, большинство клиентов переезжают гладко, без проблем, однако в каждой бочке меда есть ложка дегтя. Наша ложка называется Microsoft SQL Server 2008 R2. Основные проблемы, с которыми наши пользователи сталкиваются при установке 3-й версии, связаны с установкой или обновлением SQL-сервера.

Самая интересная из них - невозможность удаления/обновления/установки SQL-сервера, если на компьютере уже была установлена ознакомительная версия SQL Server и срок ее действия истек.

Пользователь, который попытается установить ЛЭРС УЧЕТ, получит сообщение об ошибке установки SQL-сервера. Как обычно, в поисках ошибки мы смотрим в журнал установки SQL-сервера (C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\<дата_время_установки>\Summary_<имя_пользователя>_ <дата_время_установки>.txt). В журнале будет запротоколировано следующее сообщение:

------------------------------
SQL Server Setup has encountered the following error:
No feature were uninstalled during the setup execution. The requested features may not be installed. Please review the summary.txt logs for further details.
Error code 0x84B30002.
------------------------------
Ручной запуск установки SQL-сервера также заканчивается сообщением об ошибке:


Ошибка проявляется при наличии на компьютере пробной версии SQL-сервера с истекшим сроком действия. Когда программа установки SQL-сервера пытается обновить существующие компоненты, эти компоненты сообщают ей, что их обновление невозможно, т.к. истек ознакомительный период. Единственный способ решения этой проблемы - удаление истекшей копии SQL-сервера, однако и тут нас подстерегает проблема: удаление истекшей копии SQL-сервера в штатном режиме невозможно, мы увидим то же самое сообщение об ошибке.

Проверенный способ решения проблемы описан в блоге пользователя Aaron Bertrand и заключается в ручном удалении компонентов из списка зарегестрированных в реестре Windows. Вкратце, весь процесс выглядит следующим образом:

В редакторе реестра открываем ключ  HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\,ищем ключи, содержащие параметры с подстрокой "SQL Server":


Название ключа реестра является идентификатором компонента (на криншоте это  {234F6B0D-10AE-4BB7-B2F3-E48D4861952D}). Копируем название ключа  и выполняем команду для ручного вызова удаления компонента вида
msiexec /x "{guid}" 
Например, для компонента на скриншоте это будет так:
msiexec /x "{234F6B0D-10AE-4BB7-B2F3-E48D4861952D}"
И так - для каждого компонента, связанного с SQL-сервером. При удалении некоторых компонентов будет выдаваться сообщения об ошибке удаления (например, если компонент не поддерживает ручное удаление, или уже был удален при удалении другого компонента). Эти ошибки просто игнорируем.

Все. Теперь можно устанавливать SQL-сервер.


Комментариев нет:

Отправить комментарий