设为首页 收藏本站
查看: 1158|回复: 0

[经验分享] [原创]SQL Server 2008 安装过程中遇到“性能计数器注册表配置单元一致性”检查失败 问题的解决方法

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2015-6-27 14:11:19 | 显示全部楼层 |阅读模式
  在Windows Server 2003 、Windows XP或者Windows 2000中安装 SQL SERVER 2008 开发版和企业版时,会遇到“性能计数器注册表配置单元一致性”检查失败 的问题(Windows Server 2008 由于暂时没有环境,尚未测试)
  
DSC0000.jpg
  (图一)
  安装提示错误信息为:
DSC0001.jpg
  (图二)
  解决方法:
  先根据帮助提示,打开 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)        (这个值根据不同的机器各不相同,不是固定值)
DSC0002.jpg
  (图三)
  在图三中我们看到,Perflib下存在两个子项目
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004]
  [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]
  经过比较,发现在两个子文件夹项目下面存在的计数器最大值不同
DSC0003.jpg
  (图四)Perflib\004中Counter项目的最大值为22178(这个值根据不同的机器各不相同,不是固定值)
  
DSC0004.jpg
  (图五)Perflib\004中Help项目的最大值为22179(这个值根据不同的机器各不相同,不是固定值)
  
DSC0005.jpg
  (图六)Perflib\009中Counter项目的最大值为22122(这个值根据不同的机器各不相同,不是固定值)
  
DSC0006.jpg
  (图七)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]中保存的最大值相同就可以了
DSC0007.jpg
  (图八)
  修改[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib] 中"Last Counter"的值,使它和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\004] 中"Counter"的最大值保持一致,我们这里是改为22178
  
DSC0008.jpg
  (图九)
  修改[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简体中文开发版
DSC0009.jpg
  (图十)测试通过,不再出现错误,可以正常安装了
  
  至此,问题彻底解决,而解决方法,只是简单得修改了两个注册表键值。
  总结:
  由此可见,在遇到问题时,如果不加思考,完全生搬硬套帮助文档,可能事倍功半,还会引起很多不必要的麻烦,因为帮助文档只是给我们指明了大致的方向,编写帮助文档的人也不可能知道我们遇到问题的实际环境,因此帮助文档作为参考是非常有用的,但是遇到问题的时候,我们的实际经验和动手测试的能力也是非常重要的,这样才能少走弯路。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-80961-1-1.html 上篇帖子: 浅谈SQL Server 数据库之触发器 下篇帖子: 如何在SQL Server中使用正则表达式
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表