原先装Sql Server 2005都是在新做了系统的机器上,还真是走运从来没有遇到过问题,今天是装在一台一直在用的机器上VS2008 sp1已经装过的。

1. 检查时收到一个警告,大致内容是说MSDTC没有启动(会影响如Notification Service之类的安装)。

用错误搜索得到的结果是:


Details

Product:

SQL Server

ID:

29549

Source:

setup.rll

Version:

9.00.1291.00

Component:

SQL Server Setup

Message:

Failed to install and configure assemblies [2] in the COM+ catalog. Error: [3]{Error message: [4]}{Error description: [5]}

   

Explanation

Microsoft SQL Server Setup could not verify that Microsoft Distributed Transaction Coordinator (MS DTC) is running.

   

User Action

In the Services snap-in, verify that Distributed Transaction Coordinator is started as a Network Service account. Use the Services snap-in to configure MS DTC to run as a Network Service account, and start MS DTC. Click Retry.

到服务里面看过“Distributed Transaction Coordinator”服务启动失败。

Google了一些方法,我使用了两条方法:

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. 运行cmd.exe,然后执行“msdtc -resetlog”,执行后再次尝试运行。

之后MSDTC的问题我算是解决了,网上搜索到得其它方法我没有试过,暂时摘录一下。

1. 主要思想是首先删除注册表中关于MSDTC的键,再重新安装MSDTC

把下面保存为 msdtc.bat

@echo off
setlocal
@echo %WINDIR%\System32\msdtc.exe -uninstall
%WINDIR%\System32\msdtc.exe -uninstall
call :delkey "HKCR\CID"
call :delkey "HKLM\SYSTEM\CurrentControlSet\Services\MSDTC"
call :delkey "HKLM\SYSTEM\ControlSet001\Services\MSDTC"
call :delkey "HKLM\SYSTEM\ControlSet002\Services\MSDTC"
call :delkey "HKLM\Software\Microsoft\MSDTC"
@echo %WINDIR%\System32\msdtc.exe -install
%WINDIR%\System32\msdtc.exe -install
endlocal
goto :EOF
:delkey
set key=%1
call :delkeyq %key% >nul 2>&1
@echo.
goto :EOF
:delkeyq
REG Delete %key% /F

2. 微软的一个有关在xp sp2下安装sql server2000时遇到MSDTC故障的解决方法。

 

2. 性能计数器的错误。

错误提示到sql server联机丛书中查找关于“如何在SQL Server 2005 中为安装程序增加计数器注册表项值”的内容。

搜索到如下的解决方案:

在 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)
"Last Help"=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和Perflib\Last Help的值与009中对应的键最后一位值是相符的,后将004中对应键的值赋给Perflib\Last Counter和Perflib\Last Help,结果就可以安装了。


 最后记录一个地址,这里提到的问题和解决方案还是比较详尽的:

http://wenda.tianya.cn/wenda/thread?tid=689bbba956b84b81