您的位置:首页 > 数据库

SQL SERVER 2005安装过程中COM+错误解决

2012-06-16 18:53 316 查看
SQL2005安装过程提示com+目录问题警告处理

查找联机丛书,有如下提示:

   如果未运行 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,一看果然有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项错误同时也解决了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息