今天在安装SQL Server 2005 标准版时遇到了一个问题,很有意思。在 SQL Server 安装开始前,Microsoft SQL Server 安装程序中的安装配置检查器 (SCC) 会验证计数器注册表项的值。如果 SCC 无法验证现有的注册表项,或 SCC 无法运行 lodctr.exe 系统程序,则 SCC 检查会失败,致使安装受阻。
错误编辑注册表会严重损坏您的系统。更改注册表项之前,建议您备份计算机中的所有重要数据。(其实可以直接导出Perflib,这样比较方便!)
-
在 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 安装程序。
因为之前我安装了vs2008,其中自带了SQL2005的体验版,所以先是怀疑没有卸载干净。赶紧删除参与的vs2008的组件,删除文件夹。最后仍是不行。看来只能依照官方的提示来操作了。
按照提示,参照009中的参数修改了注册表中的Perflib中Last Counter和Last Help的数值,结果仍是提示原来的错误。再次上Google搜索原因,其中一个网友提示到,Perflib下009对应的是英文版程序,004对应的才是中文版。恍然大悟啊!赶紧参照004中参数修改了perflib中2项参数。再次安装SQL2005,成功了。看来微软只是把他们的文档翻译成了中文,但是帮助中描述的解决方法仍未参照实际进行修改。唉,怎能厚此薄彼呢???