+7 495 230 03 03 8 800 222 50 03
DevOps

Ошибка при обновлении SQL Server — MSSQLSERVER.INACTIVE

Ошибка может возникнуть при обновлении SQL Server, установке CU или удалении частично установленного SQL Server.

Описание проблемы

Проблема/симптом

При попытке обновления стандартного сервера SQL 2019 (с экземпляром по умолчанию) до SQL 2022 процесс установки прервался на середине из-за ошибки прав доступа к сетевой папке с резервными копиями. В вашем случае ошибка может быть другой. После этого было предложено устранить проблему и повторно запустить обновление, однако это не сработало.

Ошибка/Результат

В нашем случае был «осиротевший экземпляр SQL Server» с именем MSSQLSERVER.INACTIVE. Стандартными методами удалить его не удалось.

Пример ошибки неудачного обновления

Рисунок 1 — Пример ошибки неудачного обновления MS SQL.

Наиболее рекомендуемое решение: поиск в Интернете, скорее всего, приведет вас к попыткам выполнить много безрезультатных действий, и, наконец, к предложению попробовать удалить неактивный экземпляр SQL с помощью командной строки:

setup.exe /ACTION=uninstall /FEATURES=Список_функций /INSTANCENAME=Имя_экземпляра

Вариант 1. Поиск и удаление ПО через ProductCode из файла Datastore_Discovery.xml

Реальные шаги по решению проблемы:

  1. найдите файлы с названием Datastore_Discovery.xml (стандартный путь C:\Program Files\Microsoft SQL Server\160\Setup Bootstrap\Log\папка лога с ошибкой установки>\Datastore);
  2. откройте Datastore_Discovery.xml в редакторе Notepad++ (как настроить форматирование описано ниже, иначе файл будет нечитаемым);

Datastore_Discovery.xml связан с процессами установки, обновления и диагностики SQL Server. Он может использоваться установщиком (Setup) или инструментами диагностики для обнаружения доступных хранилищ данных (datastores) и проверки их совместимости с требуемыми компонентами.

Форматирование XML в Notepad++:

  • перейдите в раздел Плагины > Менеджер плагинов, найдите XML Tools и установите его;
  • для форматирования: зайдите в Плагины, выберите подпункт XML Tools и далее Красивый вывод или Pretty Print.

Теперь ваш код выглядит аккуратно и понятно!

Далее

  1. найдите все упоминания MSSQLSERVER.INACTIVE в документе. Пример начала строки:
    < Instance Urn="Машина[@ID='IWE']/Продукт[@ID='SQLVNEXT']/Экземпляр[@ID='MSSQLSERVER.INACTIVE']" ID="MSSQLSERVER.INACTIVE" Имя="MSSQLSERVER.INACTIVE" … 
  2. прокрутите строки и найдите поле вида “ProductCode=”{BF4D8C4B-D931-4D62-A7ED-8A34B2FC0D1B}” (ваш код будет другим). Можно воспользоваться поиском в Notepad++ по параметру ProductCode=”{ ; “{” — скобка важна!
  3. может быть несколько ProductCodes, в зависимости от того, сколько раз строка <Instance URN…> содержит MSSQLSERVER.INACTIVE, поэтому убедитесь, что нашли все “ProductCodes”… НО БУДЬТЕ ОСТОРОЖНЫ, чтобы не проигнорировать любые ДОПУСТИМЫЕ экземпляры SQL. Ищите только те, которые находятся под записями MSSQLSERVER.INACTIVE.</Instance>

В нашем случае “Product ID SQLv16” — версия, которая установилась с ошибкой. “Product ID SQLv15” — рабочий экземпляр, который трогать не надо.

  1. после открываем командною строку с правами Администратора;
  2. для каждого из найденных вами “ProductCodes” для неактивных экземпляров SQL введите следующее:
    msiexec /x {guid}

    guid = ProductCode, в нашем случае команда будет выглядеть так:

    msiexec /x {9FFAE13C-6160-4DD0-A67A-DAC5994F81BD}

    выполните указанное действие для каждого кода продукта, который относится к неактивному экземпляру;

  3. после завершения вернитесь к установочному носителю SQL Server и запустите установку;
  4. после запуска главного экрана-заставки нажмите “Инструменты”, затем “Отчет об обнаружении установленных функций SQL Server”;
  5. откроется веб-страница со списком экземпляров SQL и всех функций для каждого экземпляра. Если вы все еще видите MSSQLSERVER.INACTIVE, вы пропустили один из ProductCodes и вам нужно еще раз проверить. В противном случае все потерянные экземпляры SQL теперь должны исчезнуть, и вы можете либо добавить функции, либо выполнить чистую переустановку экземпляра по умолчанию;
  6. после перезагрузки сервера обновляем SQL Server.

Вариант 2. Поиск и удаление ПО через список установленных программ Windows

Для отображения установленного ПО и его {guid} выполняем следующие действия:

  1. откройте командную строку и введите:
    wmic product get Name,IdentifyingNumber
  2. найдите и выделите все {guid}, которые относятся к проблемному экземпляру SQL Server (в нашем случае — это SQL Server 2022 и все его компоненты).

    Пример нашего случая IdentifyingNumber и имя ПО:

            {94AEB0A0-365C-449B-B573-D2ECB353EB06}  SQL Server 2022 XEvent
            {12618131-AA9A-4DAE-9387-CE4417955B9F}  SQL Server 2022 Shared Management Objects
            {161B8D12-C41B-4ACF-9BB5-E1FEE6788869}  SQL Server 2022 Database Engine Shared
            {EAC54B82-7A37-4A9E-8953-474316BD40F6}  SQL Server 2022 Connection Info
            {8770AF64-BB4B-4404-BDD6-6AF8E4C461FC}  SQL Server 2022 Common Files
            {73F209E4-A55B-43CD-A868-33934D894976}  SQL Server 2022 Database Engine Services
            {0CEFE958-E71A-4171-9DEF-77E9234A5613}  SQL Server 2022 SQL Diagnostics
            {7EFD8B19-A9E6-41CF-A96F-B9B6E30EC345}  SQL Server 2022 Batch Parser
            {629C8FC9-3763-4C58-8264-5288AE34AFEF}  Microsoft SQL Server 2022 RsFx Driver
            {A0F7ACBA-075F-4BC7-A85A-5DC301FCEC74}  SQL Server 2022 Shared Management Objects Extensions
            {6A68D32C-4C0D-4847-B70C-58E6B4D76A12}  SQL Server 2022 Common Files
            {5AB77D4E-9E5F-4627-B78B-129A5EC2858A}  SQL Server 2022 DMF
            {BF4D8C4B-D931-4D62-A7ED-8A34B2FC0D1B}  Microsoft SQL Server 2022 Setup (English)
  1. запустите командную строку от имени Администратора и выполните для каждого {guid}:
    msiexec /x {guid}

    guid = IdentifyingNumber, в нашем случае:

    msiexec /x {BF4D8C4B-D931-4D62-A7ED-8A34B2FC0D1B}

После перезагрузки сервера запустите обновление SQL Server.

Дата публикации: 14 апреля 2025
Не нашли ответа на свой вопрос?

Смотрите также

Обсуждение материала

Содержание

Заказать звонок

Оставьте свои данные для того, чтобы специалист с вами связался.

*нажимая на кнопку, Вы даете согласие на обработку персональных данных
Быстрое внедрение включает:
На сервере установлено следующее ПО (доступно при подключении по протоколу RDP):
Также настроено:
Перед внедрением клиент предоставляет информацию о пользователях (логины и пароли). После завершения работ, клиенту высылается инструкция и ярлык для подключения.
Индивидуальное внедрение по ТЗ клиента обсуждается отдельно.