前段时间做了个SQL 2005群集,但是在部署过程中出现了非常怪异的现象,现在简单的介绍下我的环境,两个群集节点,上面分别运行了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) 服务没有及时响应启动或控制请求。百考试题-全国最大教育类网站(100test.com) 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 微软的KB这是描述的,当SQL2005安装在CPU不是2的幂次方的情况下,就会服务无法启动。正好我们部署的HP服务器是新款,CPU是6核的,总共4颗CPU,不是2的幂次方,所以果然会报这样的错误,当时我也不太敢肯定,只能先这么认为。微软的这篇KB给了解决方法是将CPU强制变为2的幂次方,只需要在msconfig下面将Boot.ini参数设置一下就可以了。果然,通过上述的操作,重启两台服务器后,再进行安装真的可以通过,但是,这是两台服务器就从24核变为了双核,也许大家会问,难道我的服务器就这么白白的浪费掉了那么的资源,其实,大家可以这么做,安装完成SQL群集后,并且打完SP补钉后,我们再将参数改回原来的状态,然后重启服务器就行了。微软也没有说 SQL2005正常运行必须CPU是2的幂次方,只是安装是需要CPU为2的幂次方。 情况分析 由于在安装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