FIX: 您可能会出现堆损坏,SQL Server 2000 可能会停止,致命的访问冲突当您试图浏览在 SQL Server 2000 企业管理器中的文件,Windows Server 2003 x 64 基于计算机上

文章翻译 文章翻译
文章编号: 916950 - 查看本文应用于的产品
错误: # 40000113 (SQL 修补程序)
Microsoft 分布 Microsoft SQL Server 2000 修复程序作为一个可下载的文件。因为该修补程序是累积性的因此每个新版本包含的所有修补程序和所有安全修复程序以前 SQL Server 2000 中包含的修补都程序版本。
展开全部 | 关闭全部

本文内容

概要

本文介绍以下有关此修补程序版本:
  • 通过此修补程序包修复的问题
  • 安装此修补程序包的先决条件
  • 有关在安装此修补程序包后是否必须重新启动计算机的信息
  • 有关此修补程序包是否替换任何其他修补程序包的信息
  • 有关是否必须进行任何注册表更改的信息
  • 修补程序包中包含的文件

症状

请考虑以下情形。在 Microsoft Windows Server 2003 x 64-基于版的计算机上运行 Microsoft SQL Server 2000 企业管理器。您试图浏览文件,然后单击省略号按钮 (...) 在 SQL Server 2000 企业管理器中任何 文件 对话框中。在这种情况下,您可能会遇到堆损坏和 SQL Server 与致命的访问冲突可能会关闭。

其他线程或对象 (如 Microsoft 组件对象模型 (COM) 对象可能会使用 sp_oacreate 存储过程加载到 SQL Server。当发生这种情况时 OLEDB 链接服务器提供程序在进程运行 SQL Mail 或 SQLXML 也可能会受到影响,并且可能导致 SQL Server 进程关闭。此外,您也可能会遇到此问题,群集实例上。

备注
  • 此问题只影响 32 位版本的 SQL Server 2000 在 Windows x64 版本的 Windows 64 (WOW64) 子系统在 Windows Server 2003 上运行的。
  • 此堆损坏问题不会影响 SQL Server 2000 64年-位版本中的如在 ia-64 运行这些版本的任何一个操作系统,使用英特尔 Itanium 2 体系结构。
  • 此问题不会影响在 ia-64 的操作系统上,WOW64 子系统上的 32 位版本的 SQL Server。
  • 此问题不会影响任何版本的 Microsoft SQL Server 2005。
由于 xp_availablemedia 系统扩展存储的过程的可能会出现此问题。当您单击省略号按钮 (...) 在图形用户界面 (GUI) 中的时,xp_availablemedia 系统扩展存储的过程可能会被调用来执行文件浏览操作。于群集实例在企业管理器调用 sp_MSSharedFixedDisk 存储过程,然后 sp_MSSharedFixedDisk 存储过程调用 xp_availablemedia 系统扩展存储的过程。

您可能不会注意到堆损坏其他线程使用默认堆或之前释放堆内存。Sqlservr.exe 进程内运行的任何模块可以共享默认堆在进程中。因此,这种类型的堆损坏可能会影响 Xpstar.dll 和 xp_availablemedia 系统扩展存储的过程在其中编译其他模块。

所有公开发布的 SQL Server 2000 Post-Service 包修补程序是多请参阅 Microsoft 知识库中下面的文章:
894905修复程序可用于 SQL Server 2000 SP4 的累积列表

解决方案

安装程序不能安装此修补程序正确上基于 x64 的系统。当满足下列条件都为真时,将发生此安装问题:
  • 系统使用高级微设备 (AMD) AMD64 处理器体系结构或 $ 英特尔扩展内存 64 技术 (EM64T) 处理器体系结构。

    注意 在使用英特尔 Itanium 处理器体系结构的系统不会发生此问题。
  • 系统正在运行 Microsoft Windows 服务器操作系统的 64 位的版本。
  • 系统正在运行一个 32 位版本的 SQL Server 2000。
我们已更正的 SQL Server 2000,从版本 8.00.2244 开始的更高版本中的此安装问题。当在基于 x64 的系统运行 SQL Server 2000 的客户请求此修补程序时,我们将提供的生成包含此修补程序的可以在基于 x64 的系统上正确安装的。版本 8.00.2244 或更高版本,将为我们提供的生成。

修补程序信息

可以从 Microsoft 获得支持的修补程序。但是,此修补程序被用于解决本文所述的此问题。此修补程序仅应用于出现这一特定问题的系统。

是否可供下载此修补程序没有"提供修补程序下载"部分中,在这篇知识库文章的顶部。如果未出现本部分,将申请提交到 Microsoft 客户服务和支持以获取此修复程序。

注意如果出现其他问题,或者如果需要进行任何故障诊断,则您可能不得不创建单独的服务请求。将正常收取支持费用将应用于其他支持问题和不需要进行此特定的修补程序的问题。有关完整列表的 Microsoft 客户服务和支持的电话号码,或创建一个单独的服务请求,请访问下面的 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
注意"提供修补程序下载"窗体所显示的此修复程序是可用的语言。如果您看不到您的语言,则是一个修复程序不能用于该语言。

系统必备组件

您必须具有 Microsoft SQL Server 2000 Service Pack 4 (SP4) 要应用此修补程序安装。

有关如何获取 SQL Server Service Pack 4 的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
290211如何获取最新的 SQL Server 2000 服务包

重新启动信息

重新安装此修补程序后,SQL Server 服务将自动启动。

注册表信息

您不必更改注册表。

修补程序文件信息

此修补程序仅包含那些文件解决本文列出了该问题所必需的。此修补程序可能不包含将产品完全更新到最新版本所必需的所有文件。

此修补程序的英文版具有的文件属性 (或更新的文件属性) 在下表中列出。 日期和时间对这些文件列出在协调世界时 (UTC)。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间项中的 时区 选项卡。
SQL Server 2000 32年位版本
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Dtsui.dll2000.80.2191.01,593,3442006 年三月 27 日21: 10x86
Impprov.dll2000.80.2191.0102,4002006 年三月 27 日21: 10x86
Msgprox.dll2000.80.2191.094,2082006 年三月 27 日21: 10x86
Msrpjt40.dll4.10.9424.0188,4732006 年一月 24 日08: 13x86
Mssdi98.dll8.11.50523.0239,1042005 年六月 6 日22: 46x86
Ntwdblib.dll2000.80.2191.0290,8162006 年三月 27 日21: 10x86
Odsole70.dll2000.80.2191.069,6322006 年三月 27 日21: 10x86
Osql.exe2000.80.2191.057,3442006 年三月 27 日19: 25x86
Pfclnt80.dll2000.80.2191.0430,0802006 年三月 27 日21: 10x86
Replmerg.exe2000.80.2191.0163,8402006 年三月 27 日19: 34x86
Replprov.dll2000.80.2191.0237,5682006 年三月 27 日21: 10x86
Replrec.dll2000.80.2191.0315,3922006 年三月 27 日21: 10x86
Replsub.dll2000.80.2191.0270,3362006 年三月 27 日21: 10x86
Semexec.dll2000.80.2191.0856,0642006 年三月 27 日21: 10x86
Sqlagent.exe2000.80.2191.0323,5842006 年三月 27 日19: 09x86
Sqldiag.exe2000.80.2191.0118,7842006 年三月 27 日20: 15x86
Sqldmo.dll2000.80.2191.04,362,2402006 年三月 27 日21: 10x86
Sqlfth75.dll2000.80.2191.0102,4002006 年三月 27 日19: 23x86
Sqlservr.exe2000.80.2191.09,162,7522006 年三月 27 日21: 10x86
Sqlsort.dll2000.80.2191.0589,8242006 年三月 27 日21: 11x86
Stardds.dll2000.80.2191.0176,1282006 年三月 27 日21: 11x86
Svrnetcn.dll2000.80.2191.0110,5922006 年三月 27 日21: 11x86
Ums.dll2000.80.2191.035,3282006 年三月 27 日21: 11x86
Xpstar.dll2000.80.2191.0311,2962006 年三月 27 日21: 11x86
SQL Server 2000 Itanium 体系结构版本
收起该表格展开该表格
文件的名称文件版本文件大小日期时间平台
Impprov.dll2000.80.2191.0244,7362006 年三月 27 日21: 14IA 64
Msgprox.dll2000.80.2191.0188,4162006 年三月 27 日21: 16IA 64
Mssdi98.dll8.11.50523.0758,7842005 年六月 6 日22: 46IA 64
Odsole70.dll2000.80.2191.0150,5282006 年三月 27 日21: 13IA 64
Osql.exe2000.80.2191.0149,5042006 年三月 27 日21: 13IA 64
Pfclnt80.dll2000.80.2191.01,187,8402006 年三月 27 日21: 35IA 64
Replmerg.exe2000.80.2191.0375,2962006 年三月 27 日21: 17IA 64
Replprov.dll2000.80.2191.0538,6242006 年三月 27 日21: 20IA 64
Replrec.dll2000.80.2191.0775,1682006 年三月 27 日21: 19IA 64
Replsub.dll2000.80.2191.0641,0242006 年三月 27 日21: 21IA 64
Sqlagent.exe2000.80.2191.01,061,3762006 年三月 27 日21: 38IA 64
Sqldiag.exe2000.80.2191.0334,3362006 年三月 27 日21: 37IA 64
Sqldmo.dll2000.80.2191.013,860,3522006 年三月 27 日21: 42IA 64
Sqlfth75.dll2000.80.2191.0246,7842006 年三月 27 日21: 16IA 64
Sqlservr.exe2000.80.2191.024,973,3122006 年三月 28 日02: 22IA 64
Sqlsort.dll2000.80.2191.0617,4722006 年三月 27 日19: 09IA 64
Svrnetcn.dll2000.80.2191.0427,5202006 年三月 27 日21: 32IA 64
Xpstar.dll2000.80.2191.0873,4722006 年三月 27 日21: 41IA 64

替代方法

要变通解决此问题,您可能会暂时阻止 xp_availablemedia 系统扩展存储的过程的使用。若要执行此操作使用
use master
	go
	if exists (select * from master.dbo.sysobjects where name = N'xp_availablemedia' 
			and type = N'X')
	exec sp_dropextendedproc N'xp_availablemedia'
go
如果希望重新添加 xp_availablemedia 系统扩展存储的过程,在安装此修补程序后使用以下代码示例
use master
	go
	sp_addextendedproc N'xp_availablemedia',N'xpstar.dll'
	go
如果您删除该过程,将失败 sp_MSSharedFixedDisk 存储过程的任何调用并不显示任何 文件 对话框,在 SQL Server 2000 企业管理器中的。 以下代码示例。您不会在 DTS 设计器中收到一条错误消息。但是,不出现 文件 对话框。删除 xp_availablemedia 系统扩展存储的过程后,您必须手动键入文件名或文件夹的位置所需的。此外,删除 xp_availablemedia 系统扩展存储的过程,并单击省略号按钮 (...) 在 SQL Server 2000 企业管理器中的后,您收到以下错误消息中的一个 Microsoft SQL-DMO (ODBC SQLState: 42000) 对话框:
错误 2812年: 找不到存储的过程 xp_availablemedia。
注意当满足下列条件之一为真时,可能会自动重新添加到该 SQL Server xp_availablemedia 系统扩展存储的过程:
  • 还原 master 数据库。
  • 通过使用该 Rebuildm.exe 重建 master 数据库实用程序。
  • 您安装 service pack 或修复程序。

状态

Microsoft 已经确认这是在"适用于"一节中列出的 Microsoft 产品中的问题。

更多信息

通常,该 ntdll! RtlpCoalesceFreeBlocksntdll! RtlFreeHeap 函数是在线程堆栈的顶部受害者时默认堆中会导致堆被损坏的功能。但是,这些函数不是这种类型的堆损坏可能会影响该只有函数。因此,访问冲突线程堆栈的任何受攻击者可能会有所不同。 此外,不能通过检查受害者线程堆栈的单独,确定堆损坏的原因和可能由不在本文中列出的其他因素引起的堆损坏的根本原因。

例如对于 xp_availablemedia 系统扩展存储的过程的调用可能类似于以下内容:
  • 在 SQL Server 企业管理器中展开 SQL Server、 展开 管理,用鼠标右键单击 备份,然后单击 新建备份设备
  • 备份设备属性的新设备 对话框中单击省略号按钮 (...) 以查找设备的 文件名称 旁边。
此外可以通过使用 SQL 设计以编程方式调用 xp_availablemedia 系统扩展存储的过程。调用 EnumAvailableMedia 方法一起使用 MediaType 参数值为 SQLDMOMedia_All、 SQLDMOMedia_Tape,或 SQLDMOMedia_SharedFixedDisk SQL Server 设计对象。无论您如何使用该过程,结果可能始终是相同的。

有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
824684用于描述 Microsoft 软件更新的标准术语的说明

属性

文章编号: 916950 - 最后修改: 2007年11月2日 - 修订: 1.9
这篇文章中的信息适用于:
  • Microsoft SQL Server 2000 Developer Edition
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Personal Edition
  • Microsoft SQL Server 2000 标准版?当用于
    • Microsoft Windows Server 2003, Standard x64 Edition
    • Microsoft Windows Server 2003, Enterprise x64 Edition
关键字:?
kbmt kbautohotfix kbbug kbhotfixserver kbqfe KB916950 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 916950
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com