前段时间做了个SQL2005群集,但是在部署过程中出现了非常怪异的现象,并且让人是无法能够理解,并且部署花了大量的时间,出现问题了找不到原因,只能怪错是自己的MSCS搭建的有问题,或者是SQL2005安装程序出现问题。后来都将这些猜测排除在外。现在简单的介绍下我的环境,两个群集节点,上面分别运行了DC和DNS(在这里强烈不建议将DC安装在群集节点上,会现出一些权限方面的问题,因为客户没有额外的硬件只能这么做了。)在两个节点上安装了MSCS,并且来回切换都没有问题,然后添加MSDTC资源,因为两个节点是域控制器,所以MSDTC在两节点之间无法切换,需要将 DTCLog文件的network service帐户给予完全控制权限,在这里声明一下,如果DC是一台单独立的角色,就不需要改这个权限,直接就可以切换了。一切都准备就绪,我们就开始部署SQL2005群集模式,我只安装了Database Service这个角色,其它都没有安装。OKAY,下面问题就来了,刚刚弄到准备安装时,就报了一个错误。

安装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