Sunday, 26 February 2017

How to Troubleshoot MSI and MSP Files Issues:

Purpose
This TSG is aimed at providing troubleshooting steps to resolve any MSI and MSP files issues.

Background or cause

Many times while patching or installation of SQL SERVER we have come across issues of missing MSI and MSP files. 

The Windows Installer database file (http://msdn.microsoft.com/en-us/library/aa369395(VS.85).aspx) [.msi] or the Windows Installer patch file (http://msdn.microsoft.com/en-us/library/aa370596(VS.85).aspx) [.msp] is missing from the Windows Installer cache. The Windows Installer cache is present in the folder: %windir%\installer.

When a product is installed using Windows Installer, a stripped version of the original .msi file is stored in the Windows Installer cache. Every update to the product [hotfix, cumulative update or service pack setup] also stores the relevant .msp or .msi file in the Windows Installer cache.

Any future update to the product [hotfix, cumulative update or service pack setup] relies on the information present in the files stored in the Windows Installer cache. Without this information, the new patch cannot perform the required transformations.

 

 

 Symptoms

SQL Server Setup has encountered the following error:

1)   When we started to do the Installation or Up gradation on the SQL Server if MSI and MSP files missing then we encountered below errors :


 


























2)   After getting above errors , we have to check in error log using below path to identifying the exact error

“C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\Summary.txt”.




Resolution

Please follow the below steps for resolution if MSI files :

1)      Before fixing MSI and MSP files , need to run the VBS script to capture all missing MSI and MSP files
2)      Firstly, Create empty folder with Name as MSI\MSP in any drive which having enough space.
3)      After creating folder, Copy the text mentioned under FindSQLInstallsOnly.vbs Script content to a Notepad and rename the file to FindSQLInstallsOnly.vbs.
4)      After creating folder, Copy the text


  


5)      Open a Command Prompt and browse to the location where this VBS script is located.

Goto Run < CMD run as Administrator<




Run the following command :

“Cscript FindSQLInstallsOnly.vbs %Server name%_sql_install_details.txt “




6)      After running the above command and review the Output which have created as text document . Find the find the error with Missing files and getting error  as highlighted below:

================================================================================
PRODUCT NAME   : Microsoft SQL Server 2008 R2 RsFx Driver
================================================================================
  Product Code: {D8C23BDE-4748-44D9-A9DD-8AB64EB18BE3}
  Version     : 10.51.2500.0
  Most Current Install Date: 20110804
  Target Install Location:
  Registry Path:
   HKEY_CLASSES_ROOT\Installer\Products\EDB32C8D84749D449ADDA86BE41BB83E\SourceList
     Package    : rsfx.msi
  Install Source: \x64\setup\
  LastUsedSource: n;1;o:\6c4e8f5248900e41e6b64c80d1\x64\setup\

 !!!! rsfx.msi DOES NOT exist on the path in the path o:\6c4e8f5248900e41e6b64c80d1\x64\setup\ !!!!

 Action needed, re-establish the path to o:\6c4e8f5248900e41e6b64c80d1\x64\setup\

Installer Cache File: C:\Windows\Installer\6690cd2.msi

 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 !!!! C:\Windows\Installer\6690cd2.msi DOES NOT exist in the Installer cache. !!!!
 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

     Action needed, recreate or re-establish path to the directory:
       o:\6c4e8f5248900e41e6b64c80d1\x64\setup\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:

     Copy "o:\6c4e8f5248900e41e6b64c80d1\x64\setup\rsfx.msi" C:\Windows\Installer\6690cd2.msi
 Replace the existing file if prompted to do so.

7)      Fixing MSI Files :

Launch media go to last used path or location of the file and then copy the file to Installer cache and rename with as shown in VBS script file (Repeat this step for all missing files).

Ex: As per above details
Goto the last used path with exists (o:\6c4e8f5248900e41e6b64c80d1\x64\setup\) or If this error message was generated for rsfx.msi, then you need to locate this file from the setup media under the folder structure: \x64\setup\rsfx_msi\. 



Rename with rsfx.msi to 6690cd2.msi and copy in Installer cache which as shown in VBS script file (Repeat this step for all missing files).



Fixing MSP files :

1)Get the details of all the KB article and download it.

2)Copy the text mentioned under RepairSource_v3.js Script content to a Notepad and rename the file to RepairSource_v3.js.
3)Create folder with name as  Extract folder in any drive to extract the MSP files as shown below



4)Run the below script for each of the extracted KB’s.

Cscript RepairSource_v3.js <Extraction path>

Ex :


5)Restore the files that are missing from the Windows Installer cache. The steps to do this are outlined below:
Gather the complete details about the missing file from the error message or the setup log file or registry entries maintained by the Windows Installer. In the example shown above, all the information required to resolve the issue is present in the error message itself:

Patch Name: "Hotfix 1702 for SQL Server 2008 R2 (KB981355) (64-bit)"
Original MSP file used by the Patch: sql_engine_core_inst.msp
Cached MSP file: c:\Windows\Installer\1fdb1aec.msp

If you do not have all the details, refer to the More Information section for the steps to get these details.
Go to http://support.microsoft.com (http://support.microsoft.com/) and search for the KB article associated with this patch. In this example, you will search for KB981355.
Download this patch package to your computer. Make sure to download the patch package that corresponds to the required platform. In this example, it would be SQLServer2008R2-KB981355-x64.exe.
Extract the contents of the patch package using the syntax:
C:\Temp>SQLServer2008R2-KB981355-x64.exe /x C:\Temp\SQLServer2008R2-KB981355-x64
Now locate the original msp file sql_engine_core_inst.msp. It should be present in the folder: C:\Temp\SQLServer2008R2-KB981355-x64\x64\setup\sql_engine_core_inst_msi\
Copy this original msp file to the Windows Installer cache: %windir%\installer\
Rename the original msp file sql_engine_core_inst.msp to the cached msp file 1fdb1aec.msp

You can launch the setup program for the patch that resulted in the error and resume the patch process. It is possible that you encounter this message for a missing Windows Installer cache file for another component or another patch of the same product.


6)Repeat for all the KB articles that are extracted.
The output looks like :


 
7)Rerun FindSQLInstallsOnly.vbs and no more missing MSI and MSP files.

8)Finally repair the SQL Server and proceed with installation or upgradation.



No comments:

Post a Comment