Восстановление отсутствующих Windows кэша установщика и устранение проблем, которые возникают во время SQL Server обновления
В этой статье представлено несколько решений для ошибок пропавших без вести MSI, которые возникают при установке SQL Server обновлений.
Оригинальная версия продукта: SQL Server Исходный номер КБ: 969052
Описанный в этой статье процесс обеспечивает только экстренную помощь, а не постоянное исправление. Клиенты, использующие этот аварийный процесс, должны проверить Windows кэш установщика с помощью пакета проверки Windows установщика кэша, как указано в статье KB Missing Windows Installer cache requires a computer rebuild.
Симптомы
При установке пакета Microsoft SQL Server или накопительного обновления могут возникнуть различные сообщения об ошибках, которые указывают на Windows кэша установщика. Кэш Windows установки, расположенный в папке c:\windows\installer, хранит важные файлы для приложений, установленных с помощью Windows установки. Если кэш установщика был скомпрометирован путем удаления файлов, вы можете не сразу столкнуться с проблемами до тех пор, пока вы не удалим, отремонтируете или SQL Server.
Поскольку SQL Server использует технологию Windows установки, на нее могут повлиять проблемы, описанные здесь. SQL пакеты установки сервера (.MSI и . MSP-файлы) будут храниться в кэше Windows установщика. Эти файлы необходимы для отработки и обновления приложений. Отсутствующие файлы нельзя скопировать между компьютерами, так как они уникальны.
Причина
Эти проблемы могут возникнуть, когда Windows файла базы данных (.msi) или файла патча Windows установщика (msp) отсутствует в кэше Windows установщика. Кэш Windows установки расположен в папке: %windir%\installer.
При установке продукта с Windows установщиком в кэше .msi исходного файла Windows установки. Каждое обновление продукта, например hotfix, накопительного обновления или установки пакета служб, также хранит соответствующий файл .msp или .msi в кэше Windows установщика.
Любое будущее обновление продукта, например hotfix, накопительное обновление или установка пакета обслуживания, зависит от сведений в файлах, хранимых в кэше Windows установщика. Без этой информации новое обновление не может выполнять необходимые преобразования.
Каталог кэша установщика (%windir%\installer) автоматически управляется Windows при установке приложений и обновлении пакетов. Ручное вмешательство пользователей в этом каталоге может привести к различным проблемам, включая проблемы, описанные в этой статье.
Решение 1. Ремонт SQL Server установки
Чтобы SQL Server, сначала используйте процесс ремонта, описанный в следующих статьях, чтобы проверить текущую установку:
Для предыдущих версий:
Необходимо выполнить ремонт из исходного средства установки с помощью следующей командной строки:
Сначала отремонтирует общие общие компоненты и функции, а затем повторите команду для восстановления установленных экземпляров. Во время процесса диалоговое окно установки исчезает. Пока в окне прогресса не будет ошибки, процесс будет развиваться, как и ожидалось. Если файл кэша установщика для определенного компонента отсутствует, в процессе восстановления будет допущена ошибка.
Решение 2. Использование средства FixMissingMSI
С помощью средства FixMissingMSI можно определить MSI и MSP-файлы, отсутствующие в кэше Windows установщика. В качестве дополнительного разрешения можно указать средство на исходное расположение мультимедиа и повторно кэшировать отсутствующие файлы.
СкачатьВы можете скачать средство FixMissingMSI из GitHub репозитория.
ПрименениеЭто средство графическо-пользовательского интерфейса (GUI) и позволяет легко определять и устранять отсутствующие msIs.
Решение 3. Использование FindSQLInstalls.vbs сценария
Чтобы выполнить действия в этой процедуре, необходимо скопировать сценарий FindSQLInstalls.vbs в папке FixMissingMSI из репозитория GitHub в локализованную папку на компьютере, где вы пытаетесь обновить SQL Server установку.
Сценарий FindSQLInstalls.vbs собирает сведения о пакете для исправления путей недействительных пакетов. Этот скрипт используется в отношении исходных местоположений, чтобы убедиться, что все пакеты MSP находятся в каталоге кэша Windows установщика. После выполнения команд, указанных в строках Action, необходимых в файле вывода скрипта, недостающие пакеты будут добавлены повторно, если исходное исходное мультимедиа доступно.
Чтобы устранить эти проблемы с помощью скрипта, выполните следующие действия:
Скопируйте все содержимое страницы в новый текстовый файл.
Сохраните текстовый файл какFindSQLInstalls.vbs.
Откройте повышенный командный запрос в каталог, в который сохранен FindSQLInstalls.vbs файл, и запустите команду:
Откройте файл со 2-го шага в текстовом редакторе Блокнот и определите проблемы, которые вызывают сбой. Для этого в текстовом файле необходимо найти строковые шаблоны, например следующие:
- do not
- .
Основываясь на результатах предыдущего шага, примите необходимые действия.
Дополнительные сведения об этих действиях можно получить в разделе Примеры .
Повторите действия со 2 по 4 до тех пор, пока созданный на шаге 2 текстовый файл больше не содержит текст, который ссылается на недействительные пути или отсутствующие файлы для обновляемой компоненты.
FindSQLInstalls.vbs примерыВ следующих примерах описаны записи и объяснения действий, описанных в файле вывода, который создается при запуске FindSQLInstalls.vbs сценария.
Пример 1. Отсутствующие файлы установщика
Ниже приводится пример вывода, который создается при пропаже пакета .msi в папке кэша Windows установщика.
Линия LastUsedSource указывает на расположение, которое использовалось для запуска программы установки.
В строке LastUsedSource запись m; запись означает носителю и указывает, что исходным источником является CD/DVD-носителю.
В следующем примере источником является CD или DVD-диск в диске G. Если установка произошла из папки файла или из сетевой доли, строка LastUsedSource начинается с строки n; запись, за которой следует Numeric_Data_Name; запись, а затем фактический путь:
В строке Действий показан полный путь, который должен существовать для обновления отсутствующих файлов для исходного средства установки:
Файл кэша установщика: C:\WINDOWS\Installer\19b4d2.msi
Линия файлов кэша установщика подтверждает имя файла кэша установщика:
В следующем разделе вывода сообщается о действиях, необходимых для устранения недостающих файлов:
Необходимое действие, воссоздание или повторное создание пути к каталогу: G:\x64\setup\sql_engine_core_inst_msi\then rerun this script to update installer cache and results The path on the line above must exist at the root location to resolve this problem with your msi/msp file not being found or corrupted, In some cases you may need to manually copy the missing file or manually replace the problem file overwriting it is exist: Скопируйте "G:\x64\setup\sql_engine_core_inst_msi\sql_engine_core_inst.msi" C:\WINDOWS\Installer\19b4d2.msi замените существующий файл, если это будет предложено.
Пример 2. Отсутствие исправлений
Отсутствие исправлений может привести к записи, похожие на записи в примере 1. Большую часть времени вы будете замечать записи в строке Patch LastUsedSource, ссылаясь на исправление, и эта строка напоминает: Patch LastUsedSource: n;1;c:\0ca91e857a4f12dd390f0821a3\HotFixSQL\Files\ .
В этом выводе указывается следующее, что означает установку исправлений:
- Исходное исправление было установлено путем двойного щелчка исполняемого файла патча.
- Установщик для патча использовал папку temp, c:\0ca91e857a4f12dd390f0821a3 во время установки патча.
- Чтобы повторно создать путь, необходимо выполнить один и тот же исполняемый параметр и добавить параметр: /x:c:\0ca91e857a4f12dd390f0821a3 .
Эта команда заставляет исполняемого извлекать файлы в предыдущее недостающее расположение, и это повторно создает структуру, необходимую для обновления кэша Windows установки с любыми отсутствуют файлы. Фактическое расположение будет отличаться, и одно исправление, например пакет службы, может потребоваться извлечь в несколько местоположений. Каждый установленный продукт содержит раздел, содержащий следующую информацию для установленных исправлений:
Отображение имени: URL-адрес статьи КБ: http://support.microsoft.com/?kbid=<value> Patch LastUsedSource:
Url-строка статьи КБ может помочь вам скачать любые носитли исправлений, если это необходимо.
Решение 4. Вручную восстанавливать файлы
Чтобы вручную восстановить файлы, отсутствующие в кэше Windows установщика, выполните следующие действия:
Сбор полных сведений о пропавшем файле из сообщения об ошибке, из файла журнала установки или из записей реестра, которые поддерживаются Windows installer. Например, в сообщении об ошибке 1 в разделе Симптомы вся информация, необходимая для решения проблемы, присутствует в сообщении об ошибке:
- PatchName: "Hotfix 1702 для SQL Server 2008 R2 (KB981355) (64-bit)"
- Исходный MSP-файл, используемый в патче: sql_engine_core_inst.msp
- Кэшировали MSP-файл: c:\Windows\Installer\1fdb1aec.msp
Если у вас нет всех сведений, см. первый шаг для сбора этих сведений.
Посетите запросы и ищите статью KB, связанную с этим исправлением. В этом примере необходимо искать KB981355.
Скачайте этот пакет исправлений на компьютер. Убедитесь, что вы скачиваете пакет исправлений, соответствующий необходимой платформе. В этом примере пакет SQLServer2008R2-KB981355-x64.exe.
Извлекать содержимое пакета исправлений с помощью синтаксиса:
Найдите исходный файл MSP sql_engine_core_inst.msp . Файл должен быть в следующей папке: *C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi*.
Скопируйте исходный файл MSP в следующий Windows установки: *%windir%\installer*.
Переименуй исходный MSP sql_engine_core_inst.msp, в имя: кэшировали MSP-файл 1fdb1aec.msp.
Вы можете запустить программу установки для обновления, в результате чего произошла ошибка, и возобновить процесс обновления. Вы можете столкнуться с этим сообщением для отсутствующих Windows кэша установки для другого компонента или для другого обновления того же продукта.
Чтобы получить список всех отсутствующих файлов кэша Windows установщика, связанных с компонентами SQL Server SQL Server продукта, вы можете скачать средство BPA 2008 R2 2008 года, упомянутое в разделе Дополнительные сведения.
Если сообщение об ошибке ссылается на отсутствующий файл базы данных Windows установки (.msi), вам не нужно выполнять шаги со 2 по 4. Вместо этого можно перейти непосредственно к шагу 5. Вы должны найти .msi исходного носителя, который использовался для установки продукта. Если это сообщение об ошибке было сгенерировано для sql_engine_core_inst.msi, необходимо найти этот файл из мультимедиа установки в структуре папки: \x64\setup\sql_engine_core_inst_msi\ . Другие действия одинаковы.
Поиск пакета исправлений и сведений о продукте для отсутствующих файлов MSPРазличные версии продукта создают различные сообщения об ошибках для описанной проблемы. Сообщения об ошибках, упомянутые в разделе Симптомы, отображаются для обновлений, начиная с SQL Server 2008 sp1. Для других обновлений вы получаете сообщения об ошибках, которые могут четко не указывать, какой файл патча отсутствует из кэша Windows установки и конкретных сведений об обновлении. Для этих сообщений об ошибках файлы журнала установки будут содержать сведения о пропавшем файле кэша Windows установщика. Пример журнала установки напоминает следующее:
Если внимательно изучить этот журнал установки, он уже предоставляет сведения о исходном MSP-файле, который использовался в исправлении: sqlrun_sql.msp.
Дополнительные сведения о пропавшем файле MSP в кэше Windows установки, выполните следующие действия:
Поиск отсутствующих файлов .msp в следующем Windows реестра исправлений установщика: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Patches\
Найдите GUID исправлений.
Поиск GUID исправлений в следующем Windows реестра продуктов установки: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\UserData\S-1-5-18\Products\
В журнале настройки примера отсутствующий файл MSP и его соответствующие сведения об исправлении отображаются в следующих записях реестра:
Теперь у вас есть все информационные точки для начала действий по устранению недостающих файлов в кэше Windows установщика.
Если вы используете SQL Server 2008 Пакет обновления 3 (SP3) или более поздней версии, вы также можете получить аналогичное сообщение об ошибке для отсутствующих .msi файлов. С помощью этого сообщения об ошибке можно быстро определить, какой файл отсутствует, какой пакет службы скачать и где можно найти загрузку.
Дополнительные сведения о получении пакета услуг см. в выпуске KB2546951 — список проблем, исправленных SQL Server 2008 Пакет обновления 3.
Решение 5. Восстановление из резервных копий системного состояния
Восстановление резервного копирования системного состояния, как описано в кэше Missing Windows installer, требует восстановления компьютера.
Дополнительные сведения
Следующие сообщения об ошибке можно найти в виде текстовых сообщений в журнале событий или в журналах установки, расположенных в одной из следующих папок, и они указывают на то, что необходимо отремонтировать затронутый экземпляр, который будет далее:
- Для SQL Server 2008 и для SQL Server 2008 R2: C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap
- Для SQL Server 2012 г.: C:\Program Files\Microsoft SQL Server\110\Setup Bootstrap
Для SQL 2005 (все ветви)
Product Version Сообщение об ошибке при пропаже пакета установки (MSI) Сообщение об ошибке при пропаже пакета кэша установщика (MSP) SQL Server 2005 1636 Невозможно установить Windows MSI-файл installer 1636 Невозможно установить Windows MSP-файл installer
Необходимо просмотреть файлы журнала установки, чтобы определить, отсутствуют ли какие-либо кэш-файлы. Дополнительные сведения о том, как это сделать, перейдите в разделы Разрешения .
Для SQL Server 2008 SP1
Для SQL Server 2008 года только для сборки SP3 (филиалы CU/GDR не применимы)
Product Version Сообщение об ошибке при пропаже пакета установки (MSI) Сообщение об ошибке при пропаже пакета кэша установщика (MSP) SQL Server 2008 SP3 Кэшировка MSI-файла C:\Windows\Installer\FileName.msi отсутствует. Его исходный файл, sql_engine_core_inst.msi и он был установлен для продукта SQL Server 2008 ядро СУБД службы NetworkPath от , версия VersionNumber , язык ENU . Кэш-файл патча C:\Windows\Installer\FileName.msp отсутствует. Исходный sql_engine_core_inst.msp файл для этого кэшного файла , который может быть установлен из Пакет обновления 3 для SQL Server 2008 (KB2546951) (64-bit), версия VersionNumber
При выполнении обновления вы получите следующее сообщение об ошибке:
Только SQL Server 2008 R2 SP1 (филиалы CU/GDR не применимы)
Product Version Сообщение об ошибке при пропаже пакета установки (MSI) Сообщение об ошибке при пропаже пакета кэша установщика (MSP) SQL Server 2008 R2 SP1 TITLE: SQL Server сбоя установки.------------------------------SQL Server установки столкнулась со следующей ошибкой: C:\Windows\Installer\FileName.msi.------------------------------ Кэш-файл патча C:\Windows\Installer\FileName.msp отсутствует. Исходный sql_engine_core_inst_loc.msp файл для этого кэшного файла , который может быть установлен из Пакет обновления 1 для SQL Server 2008 R2 (KB2528583) (64-битная), версия VersionNumber .
При выполнении обновления вы получаете следующее сообщение об ошибке: снимок экрана сообщения об ошибке
Для SQL Server 2008 R2 SP2
Product Version Сообщение об ошибке при пропаже пакета установки (MSI) Сообщение об ошибке при пропаже пакета кэша установщика (MSP) SQL Server 2008 R2 SP1 Кэшировка MSI-файла C:\Windows\Installer\FileName.msi отсутствует. Его исходный файл sql_engine_core_inst.msi и он был установлен для продукта SQL Server 2008 R2 SP1 ядро СУБД services от NetworkPath , версия VersionNumber , язык LanguageName . Кэш-файл патча C:\Windows\Installer\FileName.msp отсутствует. Исходный файл для этого кэшного файла sql_engine_core_inst_loc.msp, который можно установить с Пакет обновления 1 для SQL Server 2008 R2 (KB2528583) (64-битная) VersionNumber версии .
При выполнении обновления вы получаете следующее сообщение об ошибке: Снимок экрана сообщения об ошибке для
За SQL Server 2012 г. до cu2
Отсутствует сообщение о том, что отсутствуют файлы MSP или MSI. Однако код ошибки 1714 входит в журнал Установки.
В файлеSummary.txt: имя компонента: SQL Server код ошибки компонента службы поддержки: 1714
В Detail.txt файле:
Для SQL Server 2012 cu2 (и любой последующий cu или SP)
Product Version Сообщение об ошибке при пропаже пакета установки (MSI) Сообщение об ошибке при пропаже пакета кэша установщика (MSP) SQL Server 2008 R2 SP1 Кэшировка MSI-файла C:\Windows\Installer\FileName.msi отсутствует. Его исходный файл, C:\Windows\Installer\sql_FeatureName.msi и он был установлен для продукта Microsoft SQL ServerVersion из C:\originalfolder версии , VersionNumber языка Language . Кэш-файл патча c:\Windows\Installer\FileName.msp отсутствует. Его исходный файл sql_engine_core_inst.msp , который может быть установлен из Hotfix 2316 for SQL Server 2012 (KB2679368) (64-bit) версии . VersionNumber Кэш-файл патча C:\Windows\Installer\FileName.msp отсутствует. Его исходный файл C:\Windows\Installer\sql_FeatureName.msp , который может быть установлен из Hotfix <HotfixNumber> для SQL Server 2012 KB Номер, версия VersionNumber .
При определенных условиях SQL Server 2012 г. средства массовой информации RTM могут быть неправильно зарегистрированы. Если при таких обстоятельствах удалить накопительное обновление или пакет служб, настройка может подсказать вам RTM-носите. Чтобы решить эту проблему, уделяем средствам массовой информации RTM путь во время процесса удаления исправлений.