Friday, November 4, 2011

Error Installing SQL 2005 on New Multi-Core Server

We encountered an unusual error when installing SQL 2005 x64 Ent Edn on a Windows 2003 R2 x64 Ent Edn server (non-clustered) running on a new server with 48 core and 32Gb RAM.  Other than installing software that was back a couple of versions on new hardware, there seemed to be nothing unusual or difficult about the install (the age should have given me the first clue as to the problem).  The installation process seemed to go well - all the required information was entered and the installer seemed to be nearing the end of its jouney by instlaling the SQL Engine and starting the engine. 

The error message displayed was:
The service did not respond to the start or control request in a timely fashion.
The installer then uninstalled all the components.

Looking through the summary.txt and other install log files SQL Server generates usually gives me the best information about an installation failure.  In this case, the useful information was in application event id 4097 from Dr Watson which stated:
The application, E:\Program Files\MSSQL.1\MSSQL\Binn\sqlservr.exe, generated an application error The error occurred on 11/03/2011 @ 15:25:56.962 The exception generated was c0000005 at address 0000000001B323F0 (sqlservr!DmpGetClientExport)

The problem is that SQL Server 2005 does not install / start correctly on some of the newer hardware configurations.  This problem is discussed in MS Support Blogs.  Per KB954835, you may not be able to install Microsoft SQL Server 2005 on a computer that has a multi-core processor, and one of the following conditions is true:
  • The ratio between logical processors & physical sockets is not a power of 2.
  • The number of physical cores is not a power of 2.
  • The total number of CPUs is an odd number. For example, there are seven or nine CPUs.
The solution is simple enough:  reconfigure the server to use only 1 core when installing.  Then reconfigure the server to use all desired core.  This is done by using the misconfigure command, setting the numcore in the advanced area of the boot.ini tab and rebooting. 

This problem does not occur when installing SQL 2008 or SQL 2008 R2.