如何手动重新生成性能计数器库值,当安装SQL2008 R2时出现计数器问题时

http://support.microsoft.com/kb/300956


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

322756 如何在 Windows XP 中备份和还原注册表
当使用系统监视器工具时,某些计数器可能丢失或不包含计数器数据。 一组基本的性能计数器库可能会损坏,可能需要重新生成。 此外,您可能需要重新生成的任何自定义 (创建的.NET Framework 应用程序) 计数器或任何可扩展计数器。

如果某些可扩展计数器损坏的注册表中,或者某些 Windows 管理规范 WMI 基于程序修改注册表,可能会发生此行为。

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

可扩展计数器信息存储在两个以下位置:
  • 下面的注册表子项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\Current Version\Perflib\009
  • %Systemroot%\System32\Perfc009.dat 文件和 %Systemroot%\System32\Perfh009.dat 文件
若要手动重新生成基性能计数器库,请按照下列步骤操作:
  1. 展开Perfc009.dat文件和Perfh009.dat文件。这些文件位于 Windows 安装光盘上。压缩的文件位于驱动器号: \i386\perfc009.da_,并在驱动器号: \i386\perfh009.da_。替换 %Systemroot%\System32 文件夹中的文件。
  2. 启动注册表编辑器,然后在注册表中找到以下项:
    HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Perflib
  3. 在注册表中,将最后一个计数器的值更改为1846年(十进制),并帮助最后一个值更改为1847年(十进制)。
  4. 找到下面的注册表项,以搜索具有 Performancesubkey 的服务:
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
  5. 从性能子项 (如果它们存在) 中删除下列值:
    • 第一个计数器
    • 第一个帮助
    • 上一次计数器
    • 上一次的帮助
    可以使用 Exctrlst.exe 工具来查找性能计数器动态链接库 (Dll) 的文件都已安装,然后访问注册表以删除 DWORD 值。您现在可以正常使用的性能注册表包含系统基计数器。

    注意删除注册表中的性能子项的值可能会导致任何已安装的.NET Framework 应用程序无法工作在启动下一次。如果发生这种情况,使用lodctr /R命令中的"重新添加可扩展计数器"部分,以重新生成性能计数器。如果您继续启动.NET Framework 应用程序时遇到问题,请参阅本文中的"重新安装的任何自定义.NET Framework 程序集的性能计数器"一节。

重新添加可扩展计数器

您必须重新添加可扩展计数器从服务列表。 执行此操作之前,必须确定用于加载计数器的.ini 文件:
  1. 打开命令提示符窗口。
  2. 在命令提示符下,键入cd %Systemroot%\System32,然后按 ENTER。
  3. 在命令提示符下,键入findstr 名 *.ini,然后按 ENTER。
  4. 请注意列表中的每个驱动的.ini 文件的名称。
  5. 在命令提示符处,键入下面的命令,然后按 ENTER 键:
    lodctr <inifile>
    注意 在此命令中, <inifile></inifile>表示要重新加载的驱动程序的.ini 文件的名称。
    例如,如果您想要重新加载 ASP 驱动程序,您在步骤 4 中记下的列表将显示 Axperf.ini 是 ASP 驱动程序 (axperf.ini:drivername=ASP) 的.ini 文件。因此,若要重新加载 ASP 驱动程序,请在命令提示符下,键入lodctr axperf.ini,然后按 ENTER 键。
  6. 为列表中的每个.ini 文件重复步骤 5。
  7. 重新启动计算机。
重新生成所有 Windows Server 2003 中包括第三方和可扩展计数器的性能计数器,请在命令提示符下键入以下命令。 每条命令后按 ENTER。
cd\windows\system32
lodctr /R
注释
  • /R 是大写形式。若要成功执行此命令的计算机上,您必须具有管理权限。
  • 在计算机上运行 32 位版本的 Windows XP, Lodctr /r: <filename>文件名命令是性能计数器注册表字符串和信息使用恢复的文件名称的标准方法。
Windows Server 2003 重新生成所有计数器,因为它会读取所有的.ini 文件在 C:\Windows\inf\009 文件夹中的英文版的操作系统。

注释
  • 如果您正在运行群集或数据中心的产品,您必须故障转移节点以刷新计数器列表。您必须执行此操作后执行的基本计数器和可扩展计数器的"添加可扩展计数器"下的步骤。
  • 在正在运行的应用程序中添加他们自己的性能计数器,如 Microsoft Exchange 或 SQL Server 的系统上用于加载性能计数器的.ini 文件不可能位于 %Systemroot%\System32。通常可以在应用程序文件夹结构下找到这些.ini 文件。
  • 如果使用前面的步骤时,您会收到有关性能库的错误消息,可能需要卸载并重新加载 IIS 性能动态链接库 (Dll)。有关如何执行此操作的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    267831 当加载性能计数器时记录事件 ID 2003 警告消息
  • 如果您继续启动.NET Framework 应用程序时遇到问题,请参阅"重新安装的任何自定义.NET Framework 程序集的性能计数器"部分。

重新安装的任何自定义.NET Framework 程序集的性能计数器

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

示例

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

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

若要解决此问题,系统中心操作管理器 2007年中的,必须重新安装创建性能计数器的.NET Framework 程序集。 若要执行此操作,用.NET Framework 安装程序工具 (Installutil.exe) /i 选项重新安装下列程序集:
  • 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
注意 要成功地执行这些命令的计算机上,您必须具有管理权限。

解决办法就是重新生成性能计数器库值,具体如下: 1)从Window XP 或 Windows 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、付费专栏及课程。

余额充值