Troubleshooting SQL Server 2008 Express installations with WebPI
One of the challenges of troubleshooting SQL installations with WebPI is that sometimes the details passed back to Webpi do not provide enough information to tell you how to resolve the issue. This is not the fault of WebPi or the SQL installer, but due to the fact that not all of the errors are exposed to the external process(WebPI) therefore all we can report is that something failed. When this occurs you need to examine the SQL logs manually to find the details for the installation failure. In this blog we will help identify some of the common failures and provide the resolutions for each.
Where to find the Logs
When the installation fails you will be presented with the following error page.
The first “View log here” will point to the SQL Summary.txt log that provides a summary of the installation and results. At the top of the log there you will see Final result: Passed/Failed to indicate if there were a failure at this level. If the result is Passed then click on the “View log here” link for the Web Platform Installer log . If no error messages are found in either link then review SQL Logs manually.
Here are the log locations for manual inspection.
WebPI Logs
- Windows Vista / 2008 : %localappdata%\Microsoft\Web Platform Installer\logs\webpi
- Windows XP, W2K3: %USERPROFILE%\Local Settings\Application Data\Microsoft\Web Platform Installer\logs\webpi
SQL Installation Logs
- C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\
Resources
- How to: View and Read SQL Server Setup Log Files
- Viewing the SQL Server Error Log
- SQL Server 2008 Release notes
- Direct Link to SQL Installer
ERROR : Attributes do not match. Present attributes..
This can occur when you try to install SQL on a Drive with either Compression, Encryption or the Archive bit set.
This error will be found in the SQL log Summary.txt .
Final result: SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server Setup.
Exit code (Decimal): -2068578304
Exit facility code: 1204
Exit error code: 0
Exit message: Attributes do not match. Present attributes (Directory, Compressed) , included attributes (0), excluded attributes (Compressed, Encrypted).
Resolution
The work around for this error is documented in KB957453 which describes this problem when the archive bit is set on the installation directory. This can also occur when Compression or or Encryption is enabled on the drive , which will be C:\ if using WebPI to install SQL.
Following the workaround section of KB957453 disable the following settings on the drive.
- Folder is ready for archiving
- Compress contents to save disk space
- Encrypt contents to save disk space
ERROR: Unrecognized configuration section system.serviceModel
During the installation the installer tries to read the configuration file (Machine.Config) . If this is invalid the installation will fail. Below is one example of such a failure.
This error will be found in the SQL log Detail_GlobalRules.text
2010-03-29 16:17:24 Slp: Inner exception type: System.Configuration.ConfigurationErrorsException
2010-03-29 16:17:24 Slp: Message:
2010-03-29 16:17:24 Slp: Unrecognized configuration section system.serviceModel. (c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Config\machine.config line 134)
Resolution
This error occurs when there is a reference to the system.serviceModel section but it is not defined in the <configSections> area of the configuration file.
- If you have access to a working Machine.Config file you can manually add the missing configuration declarations to the <configSections> area of he configuration file. The section groups may vary but if the error message is referring to system.ServiceModel you can add the following sections.
<sectionGroup name="system.serviceModel" type="System.ServiceModel.Configuration.ServiceModelSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="behaviors" type="System.ServiceModel.Configuration.BehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="bindings" type="System.ServiceModel.Configuration.BindingsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="client" type="System.ServiceModel.Configuration.ClientSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="comContracts" type="System.ServiceModel.Configuration.ComContractsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="commonBehaviors" type="System.ServiceModel.Configuration.CommonBehaviorsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/> <section name="diagnostics" type="System.ServiceModel.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="extensions" type="System.ServiceModel.Configuration.ExtensionsSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="machineSettings" type="System.ServiceModel.Configuration.MachineSettingsSection, SMDiagnostics, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowDefinition="MachineOnly" allowExeDefinition="MachineOnly"/> <section name="serviceHostingEnvironment" type="System.ServiceModel.Configuration.ServiceHostingEnvironmentSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="services" type="System.ServiceModel.Configuration.ServicesSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </sectionGroup>
<sectionGroup name="system.serviceModel.activation" type="System.ServiceModel.Activation.Configuration.ServiceModelActivationSectionGroup, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> <section name="diagnostics" type="System.ServiceModel.Activation.Configuration.DiagnosticSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="net.pipe" type="System.ServiceModel.Activation.Configuration.NetPipeSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> <section name="net.tcp" type="System.ServiceModel.Activation.Configuration.NetTcpSection, System.ServiceModel, Version=3.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"/> </sectionGroup>
Error: Performance counter registry hive consistency check "The performance counter registry hive is corrupted
I have seen two causes for the following error, either the performance counter libraries are corrupted and need to be repaired or an issue where the localized version of the performance counters are not present.
This error will be found in the SQL log Summary.txt .
Final result: SQL Server installation failed. To continue, investigate the reason for the failure, correct the problem, uninstall SQL Server, and then rerun SQL Server Setup.
Exit code (Decimal): -2067922940
Exit facility code: 1214
Exit error code: 4
Exit message: The performance counter registry hive is corrupted. To continue, you must repair the performance counter registry hive. For more information, see http://support.microsoft.com/kb/300956.
Resolution
a) If you are running Windows Vista or later the following steps can be used to rebuild the counters.
- Click Start>All Programs > Accessories.
- Right-click Command Prompt, and then click Run as administrator.
- At the command prompt, type lodctr /r, and then press ENTER.
- Assuming the message was that this was successful , retry the SQL installation.
- Reference : http://technet.microsoft.com/en-us/library/cc774958.aspx
b) For earlier operating systems follow the steps in Kb300956 listed in the error message.
c) If neither of the above resolve the issue and your and running a non-English version of Windows you may be running into the localization issue. The following steps outline the steps to resolve this on a German system that was encountering the issue.
To identify what key you need to alter on your system run Process Monitor while running the SQL installer. When the SQL installation fails check the Process Monitor logs for entries like the following where SomeNumber will represent the country code of the system that SQL is trying use for the performance counter. Use this number in place of 007 in the steps below.
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\<SomeNumber>\Counter (NAME NOT FOUND)
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\<SomeNumber>\Help (NAME NOT FOUND)
- Open RegEdit.exe and navigate to the following key. HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib
- Under this you will see the 009 and 007 keys . The 009 key is for English and the 007 is for German . ( In the case I encountered there were no values under 007)
- Right Click on the 009 key and there will be an export option . Save that anywhere on your system
- Go to the location of the file you saved which will have a .REG extension. Right Click on the file and select Edit.
- In the first line you will see HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009 . Change this too HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\007 so we can migrate these settings to the 007 key. Save the file.
- Now right click on the file and select Merge.
- Check the registry and you should see settings under HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\007
- Try the SQL setup again
Here are some different country codes you may see when troubleshooting this.
Perflib\009 -- English
Perflib\01F -- Turkish
Perflib\013 -- Dutch
Perflib\007 – German
Perflib\014 -- Norwegian
Error: is not a valid login or you do not have permission
This error can occur when you the username that you are using to install SQL is the same as the name of the machine.
This error will be found in the SQL log Summary.txt .
Configuration error code: 0x12C2466D
Configuration error description: '' is not a valid login or you do not have permission.
Configuration log: C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log\20100329_130529\Detail.txt
Resolution
Install SQL using another User account this is not the same as the machine name or rename you machine.
ERROR: Downloaded file failed signature verification and may have been tampered with.
This is typically a transient error that can occur when the download is corrupted.
The error will be found in the WebPI log WebPI.txt
DownloadManager Error: 0 : Signature verification failed on downloaded file. URL: http://download.microsoft.com/download/e/9/b/e9bcf5d7-2421-464f-94dc-0c694ba1b5a4/SQLEXPRADV_x86_ENU.exe.
Resolution
By default WebPI stores a copy of the installers for installation retries. In this case you will want to delete the cached copy and try downloading a new one.
The cache location of the installers can be found here : %LocalAppData%\Microsoft\Web Platform Installer\installers
If the problem persists using WebPI try downloading the installer directly from the link below then running the MSI directly.
http://blogs.msdn.com/sqlexpress/archive/2009/06/15/installing-sql-server-2008-guidance.aspx
ERROR: Wait on the Database Engine recovery handle failed
This error will be found in the SQL log Summary.txt .
Feature: Database Engine Services
Status: Failed: see logs for details
MSI status: Passed
Configuration status: Failed: see details below
Configuration error code: 0xBE03358B@1306@24
Configuration error description: Wait on the Database Engine recovery handle failed. Check the SQL Server error log for potential causes.
Per the error message further investigation of the SQLServer Error Log_<DateTimeStamp>.txt led to the following error.
2009-11-19 20:35:15.85 spid7s Starting up database 'mssqlsystemresource'.
2009-11-19 20:35:16.59 spid7s Error: 15209, Severity: 16, State: 1.
2009-11-19 20:35:16.59 spid7s An error occurred during encryption.
Resolution
In this case the resolution was found in the following article:
The SQL Server service failed to start
http://support.microsoft.com/kb/920114
Here is another article that pertains the original error.
960781 Error message when you try to upgrade to SQL Server 2008: "Wait on the Database Engine recovery handle failed"
http://support.microsoft.com/default.aspx?scid=kb;EN-US;960781
Summary
I hope this was helpful in providing shortcut to any of your SQL Express installation issues with WebPI. If you have other issues or need assistance you can post your questions to the WEBPI support forum.