打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何手动重新生成性能计数器库值

安装SQL2008遇到的问题:

以下Microsoft网文:

1.如何手动重新生成性能计数器库值

重要此节、 方法或任务包含说明如何修改注册表的步骤。但是,如果注册表修改不当可能会出现严重的问题。因此,请确保您认真执行这些步骤。为增加保护,请对其进行修改之前备份注册表。然后,您可以在出现问题时还原注册表。有关如何备份和还原注册表的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 

322756  (http://support.microsoft.com/kb/322756/ ) 如何备份和还原在 Windows 注册表

当您使用系统监视器工具中一些计数器可能已丢失或不包含计数器数据。基本组性能计数器库可能会损坏,并且可能需要重新生成。此外,您可能需要重新生成任何自定义 (。NET 框架应用程序创建) 计数器或任何可扩展计数器。

如果将特定的可能发生此问题可扩展计数器损坏的注册表中,或者如果某些 Windows 管理规范 (WMI)-基于的程序修改注册表。 

回到顶端

重新生成基本的性能计数器

可扩展计数器信息存储在两个以下位置: 

· 下面的注册表子项: 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009

· %Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件

要手动重建基性能计数器库,请执行以下步骤: 

展开 Perfc009.dat 文件和Perfh009.dat 文件。这些文件位于 Windows 安装光盘上。在找到的压缩的文件 驱动器号: \i386\perfc009.da_ 和 驱动器号: \i386\perfh009.da_。替换在 %Systemroot%\System32 文件夹中的文件。

启动注册表编辑器,然后找到以下注册表项中注册表: 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

在注册表中,更改 上一次计数器值 1846 (十进制),并更改 上一次的帮助 值 1847 (十进制)。

找到下面的注册表项,以搜索具有 Performancesubkey 的服务: 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

从性能子项中删除以下值 (如果它们存在): 

第一个计数器

第一个帮助

上一次计数器

上一次的帮助

您还可以使用 Exctrlst.exe 工具来查找性能计数器动态链接库 (Dll) 的文件都已安装,并且然后访问注册表以删除的 DWORD 值。现在,您可正常工作包含只有系统基本计数器的性能注册表。

请注意从性能子项在注册表中删除这些值可能会导致任何安装。NET 框架应用程序不能够在启动下一次。如果发生这种情况,使用 lodctr /R 在"重新添加可扩展计数器"部分中重新生成性能计数器的命令。如果您仍在启动时有问题。NET 框架应用程序,请参见"重新安装任何自定义。NET 框架程序集的性能计数器"一节中。

回到顶端

重新添加可扩展计数器

您必须重新添加从服务列表的可扩展计数器。之前执行此操作,您必须确定用于加载计数器的.ini 文件: 

打开一个命令提示符窗口。

在命令提示符下键入 光盘%Systemroot%\System32然后按 ENTER 键。

在命令提示符下键入 findstr *.ini然后按 ENTER 键。

10 请注意在每一名.ini 文件的名称列表。

11 在命令提示符下键入以下命令,然后按 ENTER 键: 

lodctrinifile>

请注意在此命令中, <inifile></inifile> 代表.ini 的名称要重新加载的驱动程序文件。

12 例如,如果您要重新加载 ASP 的驱动程序,您在步骤 中记下的列表显示的Axperf.ini 是 ASP 驱动程序 (axperf.ini:drivername=ASP) .ini 文件。因此,若要重新加载 ASP 驱动程序,请键入 lodctraxperf.ini 在命令提示符处,并按 ENTER

13 对列表中的每个.ini 文件重复步骤 5

14 重新启动计算机。

重新生成所有 Windows Server 2003 中包括可扩展和第三方的计数器的性能计数器,请在命令提示符处键入以下命令。每条命令后按 ENTER。 

cd\windows\system32

lodctr /R

备注

· /R 是大写的。您必须具有管理权限才能成功执行此命令的计算机上。

· 在运行 Windows XP 的 32 位版本的计算机上 Lodctr /r:文件名> 命令是使用文件的名称还原性能计数器注册表字符串和信息的标准方法。

Windows Server 2003 重建所有计数器,因为它会读取所有.ini 文件在 C:\Windows\inf\009 文件夹中的英文版的操作系统。

备注

· 如果您正在运行群集或数据中心的产品,您必须故障转移的节点来刷新计数器列表。您必须执行此操作后执行的步骤重新在"添加可扩展计数器"基计数器和可扩展的计数器。

· 在系统上运行的应用程序添加他们自己的性能计数器,如 Microsoft Exchange 或 SQL Server用于加载性能计数器.ini 文件可能不是位于在 %systemroot%\system32。通常可以在下面找到这些.ini 文件应用程序文件夹结构。

· 如果您收到一条错误消息,有关性能库当您使用前面的步骤,您可能要卸载并重新加载 IIS性能动态链接库 (Dll)。 有关详细信息有关如何执行此操作,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章: 

267831  (http://support.microsoft.com/kb/267831/ ) 当加载性能计数器时记录的事件 ID 2003 警告消息

· 如果您继续在启动时遇到问题。NET 框架应用程序,请参见"重新安装任何自定义。NET 框架程序集的性能计数器"一节。

回到顶端

重新安装任何自定义。NET 框架程序集的性能计数器

如果您仍在启动时有问题。NET 框架应用程序在执行此处列出的步骤后,您可能需要重新生成自定义的性能计数器。NET 框架应用程序。若要这样做,请使用"/ "中的选项。NET 框架安装程序工具 (Installutil.exe)。您必须知道文件的名称创建性能计数器的 DLL 文件。

示例

如果您按照这些步骤操作,并从已安装的 Microsoft 系统中心操作管理器 2007年的系统上安装的所有服务的注册表中删除计数器,则可能损坏的管理服务器。这是因为可扩展计数器 INI 文件中的窗体中未提供用于配置服务、 SDK 服务和数据库写入模块的计数器。相反,它们是在安装时注册。因此,当您尝试启动系统中心操作管理器 2007年,您可能会收到一条错误消息类似于以下,因为缺少的性能计数器: 


事件类型: 错误
来源: OpsMgr SDK 服务
事件类别: 无
事件 ID: 26380
日期: 日期
时间时间
用户: 不适用
计算机: MOM
说明:由于未处理的异常系统中心操作管理器 SDK 服务失败。


要解决此问题,在系统中心操作管理器 2007年中的,您必须重新安装。NET 框架创建性能计数器的程序集。要这样做,请使用 /i 选项中的。NET 框架安装程序工具 (Installutil.exe) 重新安装下列程序集: 

· Microsoft.Mom.ConfigService.dll

· Microsoft.Mom.Sdk.ServiceDataLayer.dll

· Microsoft.Mom.DatabaseWriteModules.dll

· Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll

例如,在命令提示符下键入以下命令,并且每个命令之后按 ENTER: 

InstallUtil Microsoft.Mom.ConfigService.dll /i
InstallUtil Microsoft.Mom.Sdk.ServiceDataLayer.dll /i
InstallUtil Microsoft.Mom.DatabaseWriteModules.dll /i
InstallUtil Microsoft.EnterpriseManagement.HealthService.Modules.DataWarehouse.dll /i

请注意要成功地执行这些命令的计算机上,您必须具有管理权限。

*******************************************************************************

以下网文,图片略:

SQL Server 2008 安装过程中遇到性能计数器注册表配置单元一致性检查失败 问题的解决方法

Windows Server 2003 Windows XP或者Windows 2000中安装 SQL SERVER 2008 开发版和企业版时,会遇到性能计数器注册表配置单元一致性检查失败 的问题(Windows Server 2008 由于暂时没有环境,尚未测试)

 

(图一)

安装提示错误信息为:

(图二)

解决方法:

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

 

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

[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)        (这个值根据不同的机器各不相同,不是固定值)

(图三)

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

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

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

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

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

 

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

 

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

 

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

 

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

"Last Counter""Last Help"这两项的值,和[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Perflib\009]中保存的最大值是相同的,分别为2212222123(这两个数值每台电脑各不相同),而和[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]中保存的最大值相同就可以了

(图八)

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

 

(图九)

修改[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简体中文开发版

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

 

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

总结:

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

以上机器不同,不用。

以下网文,成功

性能计数器注册表配置单元已损坏[原创 2010-02-18 10:58:24] 

 

    今天,安装 SQL 2008 R2,在安装程序支持规则一页,出现性能计数器注册表配置单元一致性失败,无法继续安装。

    根据提示进行修复,http://support.microsoft.com/kb/300956

[    可扩展计数器信息存储在以下两个位置中:

· 以下注册表项: 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009

· %Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件。

    要手动重新生成基本的性能计数器库,执行以下操作:

    从安装盘中提取 Perfc009.datPerfh009.dat 两个文件。替换 %Systemroot%\System32 文件夹中的文件。

    启动注册表编辑器,然后在注册表中查找以下项:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib

在注册表中,将“LastCounter”值更改为 1846(十进制),并将“LastHelp”值更改为 1847(十进制)。

查找以下注册表项,以搜索具有 Performance 子项的服务: 

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services

从 Performance 子项(如果存在)删除以下值: 

FirstCounter

FirstHelp

LastCounter

LastHelp

还可以使用 Exctrlst.exe 工具来查找安装的性能计数器动态链接库文件 (DLL),然后访问注册表以删除 DWORD 值。现在您拥有了只包含系统基计数器的可以正常使用的性能注册表

应用以下成功:

       

    完成此过程后,必须从服务列表重新添加可扩展计数器。但是在执行此操作之前,必须确定用于加载计数器的 .ini 文件:

打开一个命令提示符窗口。

键入 cd %Systemroot%\System32,然后按 Enter

键入 findstr drivername *.ini,然后按 Enter

注意列表中每个驱动程序名称所对应的 .ini 文件名。

在命令提示符处,键入下面一行,然后按 Enter: 

lodctr inifile

10 其中,inifile 是对应您要重新加载的驱动程序的 .ini 文件名。

例如,如果打算重新加载 ASP 驱动程序,则第 步中出现的列表将显示 Axperf.ini 是用于 ASP 驱动程序的 .ini 文件 (axperf.ini:drivername=ASP)。因此,要重新加载 ASP 驱动程序,请在命令提示符处键入 lodctr axperf.ini,然后按 Enter

11 为列表中的所有 .ini 文件重复第 步。

12 重新启动计算机。

    要在 Windows Server 2003 重新生成所有的性能计数器(包括扩展的和第三方计数器),请在命令提示符处键入以下命令。在输入每个命令后按 Enter

cd \windows\system32

lodctr /R

注意/R 是大写。

]
    以上的讲解告诉我们,计数器的注册表信息保存在何处。但是,我们并不想真的重新创建计数器。所以,括号中的内容也并不必太关心。我们要执行的就是最后一句。

lodctr /R

然后,重启计算机,重新启动安装程序。

以下cmd所列.ini  ,Lodctr后加

Lodctr esentprf.ini:drivername=ESENT

Lodctr mqperf.ini:drivername=MSMQ

Lodctr msdtcprf.ini:drivername=MSDTC

Lodctr pschdprf.ini:drivername=PSched

Lodctr rasctrs.ini:driver=RemoteAccess

Lodctr rsvp.ini:drivername=RSVP

Lodctr tslabels.ini:drivername=TermService

安装过程遇到的问题及解决的网文:

为 SQL Server 代理服务提供的凭据无效。若要继续操作,请为 SQL Server 代理服务提供有效的帐户和密码

首先。。。你进入系统是不是需要一个账户呢。。。比如我安装完XP系统默认是有个Administractor账户的,但此时没有密码的,需要自己设置的。SQL Sever2008为了提高它的安全性,需要将它的各大功能模块都设置账号和密码。那么这里的账号和密码就是你当前登录操作系统时的账号和密码。有很大一部分人它的系统装好后不设置密码,每次开机都直接进入到桌面的,那么很遗憾。。。没密码这里的安装不骤不能通过。至于你说得“我随便用的比如admin或者123什么的都有错啊”肯定是不行的,这些账户必须是你系统上已经存在的合法的具有相关权限的账户,可以到右键我的电脑-->管理-->本地用户和组-->用户,里面可以查看到你的系统管理员以及相关的其他账户信息。 

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何在SQL Server 2005中为安装程序增加计数器注册表项值 - 皮皮部落格 - ...
安装SQL 2005“性能监视器计数器要求错误”解决方法
Windows Server 2008 R2安装 “性能计数器注册表配置单元一致性”...
SQL Server 2008 setup
计算机优化步骤全解析
开机不显示桌面,无法自动加载explorer.exe进程的解决方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服