安装SQL 2005群集的过程中遇到以下错误:
错误 29503。SQL Server 服务无法启动。有关详细信息,请参阅 SQL Server 联机丛书中的主题“如何查看 SQL Server 2005 安装日志文件”和“手动启动 SQL Server”。
事件日志错误为:(1053) 服务没有及时响应启动或控制请求。
<Func Name='GetCAContext'>
<EndFunc Name='GetCAContext' Return='T' GetLastError='0'>
Doing Action: Do_sqlScript
PerfTime Start: Do_sqlScript : Mon Jun 29 11:06:43 2009
Service MSSQLSERVER with parameters '-m SqlSetup -Q -qChinese_PRC_CI_AS -T4022 -T3659 -T3610 -T4010' is being started at Mon Jun 29 11:06:43 2009
Unable to start service (1053)
Error Code: 0x8007041d (1053)
Windows Error Text: 服务没有及时响应启动或控制请求。
Source File Name: sqlsetuplib\service.cpp
Compiler Timestamp: Fri Sep 16 13:20:12 2005
Technorati 标签: SQL
Function Name: sqls::Service::Start
Source Line Number: 316
就这个错误让我们花尽了心思,绕了很多的弯路啊。哈哈。后来,通过在微软Support网站查找到了跟这个类似的错误,好像也是1053的错误。微软的KB 这是描述的,当SQL2005安装在CPU不是2的幂次方的情况下,就会服务无法启动。正好我们部署的HP服务器是新款,CPU是6核的,总共4颗 CPU,不是2的幂次方,所以果然会报这样的错误,当时我也不太敢肯定,只能先这么认为。微软的这篇KB给了解决方法是将CPU强制变为2的幂次方,只需要在msconfig下面将Boot.ini参数设置一下就可以了。果然,通过上述的操作,重启两台服务器后,再进行安装真的可以通过,但是,这是两台服务器就从24核变为了双核,也许大家会问,难道我的服务器就这么白白的浪费掉了那么的资源,其实,大家可以这么做,安装完成SQL群集后,并且打完SP补钉后,我们再将参数改回原来的状态,然后重启服务器就行了。微软也没有说SQL2005正常运行必须CPU是2的幂次方,只是安装是需要CPU为2的幂次方。唉,搞了两天才把这个问题解决,其实也没有什么大的问题,只是一个非常细微的地方进行设置下就好了,但是,我想这个问题我是一辈子也不会被发现的。也不跟大家多说了,希望大家在以后碰到这样类似的问题时,前期准备要考虑的充分点,不要像我一样,把时间花要无用的地方上。下面我就把微软这篇KB告诉大家,大家上去看看知道了。
情况分析
========
由于在安装SQL 2005之前,服务器上的CPU个数一定要是2的幂次方。而由于您的服务器现在的CPU个数是4*6=24个,不是2的幂次方,所以会遇到以上错误导致安装失败。
解决方法
========
On a computer that has a multicore processor, if the ratio of logical processors to physical sockets is not a power of 2, you cannot install SQL Server 2005
http://support.microsoft.com/default.aspx?scid=kb;EN-US;954835