安装sql2005一直失败,以为提示的问题是这个com+目录问题警告所致,找了很久找到这个问题的解决方案
sql2005_STD_X86在XPSP2下安装失败的一点经验
软环境是XPSP2,安装SQL2005_STD_X86版。
故障提示:
1。如果 SQL Server 安装程序失败,安装程序将回滚所安装的系统,但可能不会删除所有 .manifest 文件。解决方法是重命名这些文件,然后重新运行安装程序。有关详细信息,请参阅“如何处理 SQL Server 安装过程中的 COM+ 检查失败问题”。如果未运行 Microsoft 分布式事务处理协调器 (MS DTC),或者,在使用 Microsoft 群集服务器的情况下,如果 MS DTC 不是群集资源,则可能会发生 COM+ 错误。COM+ 依赖于 MS DTC,而 Integration Services 中的消息队列任务依赖于 COM +。如果出现 COM+ 错误,则只有将 COM+ 系统正确配置后,Integration Services 中的消息队列任务才可用。
2。对性能监视器计数器注册表值执行系统配置检查失败。有关详细信息,请参阅自述文件或 SQL Server 联机丛书中的“如何在 SQL Server 2005 中为安装程序增加计数器注册表项值”。
安装中止。
查找联机丛书,有如下提示:
1。Microsoft SQL Server 2005 安装程序检查 COM+ 是否已正确配置。如果发现配置错误,安装程序仍将继续,但是在系统配置检查 (SCC) 报告中显示以下警告:
“如果 SQL Server 安装程序失败,安装程序将回滚所进行的安装,但可能不会删除所有的 .manifest 文件。解决方法是重命名这些文件,然后重新运行安装程序。”
如果未运行 Microsoft 分布式事务处理协调器 (MS DTC),或者,在使用 Microsoft 群集服务器的情况下,如果 MS DTC 不是群集资源,则可能会发生 COM+ 错误。COM+ 依赖于 MS DTC,而 Integration Services 中的消息队列任务依赖于 COM +。如果出现 COM+ 错误,则只有将 COM+ 系统正确配置后,Integration Services 中的消息队列任务才可用。
若要使用消息队列(亦称 MSMQ),请确保 MS DTC 正在运行并且已正确配置。如果 SQL Server 安装在群集上,则 MS DTC 必须是群集资源。
按照下列过程重新安装 COM+。
安装组件服务管理单元
在 Windows 桌面上,单击“开始”,然后单击“运行”。
在“打开”框中,键入 MMC,然后单击“确定”。
在“控制台”窗口中,单击菜单栏上的“文件”,然后单击“添加/删除管理单元”。
在“添加/删除管理单元”窗口,单击“添加”。
在“添加独立管理单元”窗口,从管理单元列表中选择“组件服务”,然后单击“添加”。
单击“关闭”以关闭“添加独立管理单元”窗口,然后单击“确定”以关闭“添加/删除管理单元”窗口。
在“控制台根节点\组件服务”窗口,展开“组件服务”树。这就是当 COM+ 出现问题时,错误消息可能发生的地方。
再次运行 SQL Server 2005 安装程序。如果收到错误消息,请重新安装 COM+。
重新安装 COM+
从控制面板的“添加或删除程序”中,单击“添加/删除 Windows 组件”。
在“Windows 组件向导”中,不对选择做任何更改,单击“下一步”。
一直单击以完成向导,然后再次运行 SQL Server 2005 安装程序。
2。在 SQL Server 安装开始前,Microsoft SQL Server 安装程序中的安装配置检查器 (SCC) 会验证计数器注册表项的值。如果 SCC 无法验证现有的注册表项,或 SCC 无法运行 lodctr.exe 系统程序,则 SCC 检查会失败,致使安装受阻。
错误编辑注册表会严重损坏您的系统。更改注册表项之前,建议您备份计算机中的所有重要数据。
手动设置计数器注册表项的增量
在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击“开始”、“运行”,然后在“打开”中键入 regedit.exe,再单击“确定”。在 Windows 2000 中,使用 regedt32.exe 启动注册表编辑器。
定位到以下注册表项:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]
"Last Counter"=dword:00000ed4 (5276)
"LastHelp"=dword:00000ed5 (5277)
上一步的“Last Counter”值 (5276) 必须与以下注册表项中“Perflib\009”的“Counter”项的最大值匹配,并且上一步的“Last Help”值 (5277) 必须与以下注册表项中“Perflib\009”的“Help”项的最大值匹配。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]
注意 009 是英文中的一个示例。“Last Counter”和“Last Help”值是由 Windows 动态分配的;这两个值会因计算机的不同而不同。
如有必要,可修改“\Perflib”项中的“Last Counter”和“Last Help”值的值:在右侧窗格中,右键单击“Last Counter”或“Last Help”,单击“修改”,再单击“Base = "Decimal"”,在“值数据”中设置值,再单击“确定”。如有必要,对另一个项重复以上过程,然后关闭注册表编辑器。
再次运行 SQL Server 安装程序。
解决过程:
COM+检查失败不用说肯定是组件消息队列下的组件没安装或服务没启动。本机没有安装过消息队列,找出系统盘安装消息队列组件,在组件安装中提示MSDTC服务没有启动,在这步晕了长很时间,MSTDC在服务中怎么也找不到,后来想会不会是DTC(脑子有点笨,其实从MSMQ这名称上就应该想到),一看果然有Distributed Transaction Coordinator(DTC),但是这个服务启动不了,后来查找相关资料:MSDTC( Distributed Transaction Coordinator )服务必须在 NT AUTHORITY\NetworkService 帐户下运行;即使是 NT AUTHORITY\Network Service(注意,Network和Service中间有空格)也不行(至于这两个帐户的区别,在网上也没有找到,还望大家不吝赐教 )。如果登录帐户被更改,MSDTC服务会继续运行,但是在执行的时候可能会出错。而且,在事件日志的“应用程序”里面可以发现如下的出错信息:
正在运行 MS DTC 服务的帐户无效。 如果使用 Microsoft Management Console (MMC) 中的“服务”管理单元更改了服务帐户信息,就会发生这种情况。 MS DTC 服务将继续启动。请确认使用“组件服务管理器”更新了 MS DTC 服务帐户信息。
要更改成正确的登录帐户,我们可以:
在服务中找到Distributed Transaction Coordinator服务,选择“属性”;
在“登录”选项卡中,选择“此帐户”,帐户名填写“NT AUTHORITY\NetworkService”,密码为空;
在点击“确定”后重新启动服务。
或者,在命令行下运行 msdtc -uninstall ,卸载 msdtc 服务;
再运行 msdtc -install ,安装 msdtc 服务。
MSTDC服务成功启动,组件服务中“COM+应用程序”可以访问,上面第2项故障没去解决,先试着安装看看有没有错误,令人惊喜,安装检查一切顺利,第2项错误同时也解决了。
当然,解决问题的过程同样的系统环境也不尽相同,在这里谈一下我安装的小挫折,希望可以给碰到相同问题的朋友有些提示作用。