在Windows Server 2003 、Windows XP或者Windows 2000中安装 SQL SERVER 2008 开发版和企业版时,会遇到“性能计数器注册表配置单元一致性”检查失败

在Windows Server 2003 、Windows XP或者Windows 2000中安装 SQL SERVER 2008 开发版和企业版时,会遇到“性能计数器注册表配置单元一致性”检查失败 的问题

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图一)

安装提示错误信息为:

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图二)

解决方法:

先根据帮助提示,打开 http://support.microsoft.com/kb/300956, 帮助的文档是让你使用安装光盘重置性能计数器文件,操作步骤比较复杂,可是我并没有安装什么特殊的软件,而且确定也没有病毒感染,为什么性能计数器会损坏 呢,因此决定不到万不得已暂时不去重置性能计数器,以免扩大问题的影响面。(Microsoft的Help文档经常是答非所问....)

 

果然,经翻阅文档,发现计数器配置信息保存在注册表

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]中

操作步骤:

1. 在 Microsoft Windows 2003 或 Windows XP 桌面上,依次单击“开始”、“运行”,然后在“打开”中键入 regedit.exe,再单击“确定”。在 Windows 2000 中,使用 regedt32.exe 启动注册表编辑器

 

2. 定位到以下注册表项:

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]

"Last Counter"=dword:0000566a(22122)   (这个值根据不同的机器各不相同,不是固定值)
"Last Help"=dword:0000566b(22123)        (这个值根据不同的机器各不相同,不是固定值)

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图三)

在图三中我们看到,Perflib下存在两个子项目

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]

经过比较,发现在两个子文件夹项目下面存在的计数器最大值不同

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图四)Perflib\004中Counter项目的最大值为22178(这个值根据不同的机器各不相同,不是固定值

 

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图五)Perflib\004中Help项目的最大值为22179(这个值根据不同的机器各不相同,不是固定值

 

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图六)Perflib\009中Counter项目的最大值为22122(这个值根据不同的机器各不相同,不是固定值

 

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图七)Perflib\009中Help项目的最大值为22123(这个值根据不同的机器各不相同,不是固定值

 

很显然,如图所示,在我的机器上[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib]中

"Last Counter"和"Last Help"这两项的值,和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]中保存的最大值是相同的,分别为22122和22123(这两个数值每台电脑各不相同), 而和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]中保存的最大值不相同,正是由于这个差异,造成了SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败的故障。

 

原因分析:

由于之前安装过的Visual Studio 2008英文版中所带的Visual Studio 2005 Express语言版本是英文版,同时又测试安装了SQL SERVER 2005 Developer Edition简体中文开发版,之后又卸载了SQL SERVER 2005 Developer Edition简体中文开发版,打算安装SQL SERVER 2008 Developer Edition简体中文开发办,由于语言的不一致性以及反复多次的安装卸载,估计是安装程序在卸载的时候的错误,造成了注册表中键值不一致的现象

 

问题解决:

知道的故障的起因,问题就很好解决了,由于我们使用的是简体中文版操作系统,所以要保证

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"和"Last Help"这两项的值与

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]中"Counter"和"Help"两项保存的最大值相同就可以了

如果我们使用的是英文版操作系统,那就要保证

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"和"Last Help"这两项的值与

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]中保存的最大值相同就可以了

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图八)

修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"的值,使它和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Counter"的最大值保持一致,我们这里是改为22178

 

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图九)

修 改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Help"的值,使它和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Help"的最大值保持一致,我们这里是改为22179

要注意的是,修改数字的时候,必须选择基数是 “十进制”(默认是十六进制),否则数字将不匹配,SQL SERVER 2008 安装程序检查将再次失败

注意:修改注册表存在一定风险,可能造成您的系统损坏,请先备份注册表,以备在出现问题后可以恢复。有关如何备份和还原注册表,请参考Microsoft 知识库中相应的主题:[322756]如何备份和还原 Windows 注册表

 

测试效果:

然后关闭注册表编辑器,再次开始安装 SQL SERVER 2008 Developer Edition简体中文开发版

SQL <wbr>Server <wbr>2008 <wbr>安装过程中遇到鈥溞阅芗剖髯⒉岜砼渲玫ピ恢滦遭澕觳槭О <wbr>问题的解决方法【已验证

(图十)测试通过,不再出现错误,可以正常安装了

 

至此,问题彻底解决,而解决方法,只是简单得修改了两个注册表键值。

总结:

由此可见,在遇到问题时,如果不加思考,完全生搬硬套帮助文档,可能事倍功半,还会引起很多不必要的麻烦,因为帮助文档只是给我们指明了大致的方 向,编写帮助文档的人也不可能知道我们遇到问题的实际环境,因此帮助文档作为参考是非常有用的,但是遇到问题的时候,我们的实际经验和动手测试的能力也是 非常重要的,这样才能少走弯路。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解决办法就是重新生成性能计数器库值,具体如下: 1)从Window XPWindows 2003 光盘提出"PERFC009.DA_文件"PERFH009.DA_"文件,通常它们位于光盘的 \i386 目录,然后进入cdm,键入下面的命令分别展开它们: expand perfc009.da_ expand perfh009.da_ 然后把展开出来的 perfc009.dat 和 perfh009.dat 替换 windows\system32\ 下的同名文件。    展开方式如下:    2)启动注册表编辑器,然后在注册表查找以下项: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib 将"LastCounter"值更改为 1846(十进制),并将"LastHelp"值更改为 1847(十进制)。    3)继续找到以下注册表项 HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services 如果存在 Performance 子项,则删除以下值: ? FirstCounter ? FirstHelp ? LastCounter ? LastHelp    4)打开cmd, 键入 cd %Systemroot%\System32 findstr drivername *.ini 然后按 Enter。 注意列表每个驱动程序名称所对应的 .ini 文件名。 在命令提示符处,键入下面一行,然后按 Enter: lodctr inifile 其,inifile 是对应您要重新加载的驱动程序的 .ini 文件名。 例如,如果打算重新加载 ASP 驱动程序,则第 4 步出现的列表将显示 Axperf.ini 是用于 ASP 驱动程序的 .ini 文件 (axperf.ini:drivername=ASP)。因此,要重新加载 ASP 驱动程序,请在命令提示符处键入 lodctr axperf.ini,然后按 Enter。 下面我以 Windows XP 为例,把执行的步骤写上来,建一个bat文件,复制进去执行就可以了。 lodctr esentprf.ini lodctr mqperf.ini lodctr msdtcprf.ini lodctr perfci.ini lodctr perffilt.ini lodctr perfwci.ini lodctr pschdprf.ini lodctr rasctrs.ini lodctr rsvp.ini lodctr tslabels.ini pause    5)重新启动计算机。 最后还是cmd: cd \windows\system32 lodctr /R 注意:/R 是大写。 这,已经可以看到性能计数器库值已完成了重新生成。   再来看看sql server 2008的安装,一切正常 细节和需要注意的地方,请参考微软支持(http://support.microsoft.com/kb/300956/zh-cn)   如果出现下面这种情况   退后两步,设置成 就行了   再回去看看 一切正常

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值