KB2159286 - 修复:当应用程序尝试从另一台计算机上的 SQL Server 实例检索性能计数器数据时,远程注册表服务崩溃

应用对象
SQL Server 2008 Enterprise SQL Server 2008 Developer SQL Server 2008 Standard Microsoft SQL Server 2005 Service Pack 4 Microsoft SQL Server 2005 Enterprise Edition Microsoft SQL Server 2005 Developer Edition Microsoft SQL Server 2005 Standard Edition Microsoft SQL Server 2005 Service Pack 3 SQL Server 2008 Service Pack 2 SQL Server 2008 R2 Developer SQL Server 2008 R2 Enterprise SQL Server 2008 R2 Standard SQL Server 2008 Service Pack 3

症状

请考虑以下情形:

  • 您在运行 Windows Server 2003 或 Windows Server 2008、Windows Vista 或更高版本的 Windows 的计算机上安装 Microsoft SQL Server 的实例。
  • 在另一台计算机上运行应用程序。 应用程序尝试远程检索 SQL Server 实例的性能计数器数据。

在这种情况下,远程注册表服务在安装了 SQL Server 的计算机上崩溃。 此外,类似下面这样的错误消息将记录在安装了 SQL Server 实例的计算机的应用程序日志中:

注意

故障应用程序名称:svchost.exe_RemoteRegistry,版本:6。 .7600. 6385,时间戳:0x4a5bc3c
故障模块名称: perf-MSSQLSERVER-sqlctr 0。 .275_unloaded,版本:0.0.0.0,时间戳:0x4b48 09 异常代码:0xc0000005
错误偏移量:0x00000000626bfe57
错误的进程 ID: 0x d 8
故障应用程序启动时间:0x0 cad723f5bfd536
故障应用程序路径: 驱动器:\Windows\system32\svchost.exe
故障模块路径: perf-MSSQLSERVER-sqlctr 0。 .275
报告编号: da45823c-4327- df-ad 9-00 7a477845a

故障应用程序名称:svchost.exe_RemoteRegistry,版本:6.1.7600.16385,时间戳:0x4a5bc3c1
故障模块名称:sqlctr90.dll_unloaded,版本:0.0.0.0,时间戳:0x492b1b55
异常代码:0xc0000005
错误偏移量:0x000000003353c171
错误进程 ID:0x2eec
故障应用程序启动时间:0x01cad5a366dde911
故障应用程序路径: 驱动器:\Windows\system32\svchost.exe
故障模块路径:sqlctr90.dll
报告 ID: d0a6f0d5-41b3-11df-ae47-0017a4778006

此外,在安装了 SQL Server 实例的计算机的 Windows 系统日志中,会记录一个类似下面这样的错误消息:

注意

Date,Time PM,Error,ServerName,7034,Service Control Manager,N/A,N/A,“远程注册表服务意外终止。 它已经完成了这个 数字 () 。

原因

出现此问题的原因是 SQL Server 性能计数器使用了错误的方法调用 RegQueryValueEx API 来访问注册表项。 此行为会导致加载 SQL Server 性能计数器的远程注册表服务崩溃。

解决方法

注意 若要在 SQL Server 2005 Service Pack 3 (SP3) 中解决此问题,请在安装了 SQL Server 2005 实例的计算机上应用 SQL Server 2005 SP3 累积更新 13。 目前,此解决方法仅适用于 SQL Server 2005 SP3。

累积更新信息

此问题已首先在 SQL Server 的以下累积更新中修复。

SQL Server 2008 SP3 的累积更新 17 /en-us/help/2958696

SQL Server 2008 R2 SP1 的累积更新 4 /en-us/help/2633146

SQL Server 2008 R2 的累积更新 9 /en-us/help/2567713

SQL Server 2008 SP2 累积更新 4 /en-us/help/2527180

SQL Server 2005 SP3 累积更新 13 /en-us/help/2438344

SQL Server 2005 SP4 累积更新 2 /en-us/help/2489409

SQL Server 2008 SP1 累积更新 13 /en-us/help/2497673

关于 SQL Server 的累积更新

SQL Server 的每个新累积更新都包含上一个累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:

      

Windows 内部数据库 (Microsoft SQL Server Embedded Edition) 的修补程序信息
注意 此修补程序仅适用于 2005 版的 Windows 内部数据库。
 Microsoft 提供了一个受支持的修补程序。 但此程序只用于解决本文中提到的问题。 仅将此修补程序应用于遇到此特定问题的系统。

如果修补程序可供下载,则本知识库文章顶部的“修补程序下载可用”部分。 如果此部分不存在,请向 Microsoft 客户服务和支持部门提交请求以获取该修补程序。

注意 如果发生其他问题或需要进行任何故障排除,您应该另行创建服务请求。 对于此特定修补程序无法解决的其他支持问题和事项,将照常收取支持费用。 若要获取 Microsoft 客户服务和支持部门的完整电话号码列表或另行创建服务请求,请访问以下 Microsoft 网站:

/contactus/?ws=support 注意 “修补程序下载可用”窗体显示了修补程序的可用语言版本。 如果您找不到需要的语言,则说明该语言版本的修补程序未提供。

先决条件若要应用此修补程序,必须在计算机上安装 Windows 内部数据库。

重启要求应用此修补程序后,无需重启计算机。

文件信息 此全局修补程序版本具有下表列出的文件属性 (或更高版本的文件属性) 。 这些文件的日期和时间以协调世界时 (UTC) 格式列出。 在查看文件信息时,文件时间将转换为本地时间。 要了解 UTC 与本地时间之间的时差,请使用“控制面板”中“日期和时间”项中的“时区”选项卡。