使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

Microsoft 为一个可下载文件分发 Microsoft SQL Server 2008年的修补程序。修补程序是累积性的因为每个新版本包含的所有修补程序,包含上一个 SQL Server 2008 的所有安全修补程序的修补都程序版本。

症状

请考虑以下情形。在 Microsoft SQL Server 2008年数据库中,会发生死锁。然后,您可以使用system_health扩展事件会话来捕获死锁的图形。在此方案中,您将收到以下错误消息:

Msg 9436,级别 16 状态 1,第 1 行

XML 分析︰ 行 54,12,字符的结束标记与开始标记不匹配

例如,下面的查询从system_health会话发生死锁时导出 buffer_ring 目标运行时︰

select XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as DeadlockGraphFROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'

在此示例中,查询会返回正确的结果。

但是,您还可以运行以下查询以 XML 格式转换此死锁的图形︰

select cast(XEventData.XEvent.value('(data/value)[1]', 'varchar(max)') as xml) as DeadlockGraphFROM
(select CAST(target_data as xml) as TargetData
from sys.dm_xe_session_targets st
join sys.dm_xe_sessions s on s.address = st.event_session_address
where name = 'system_health') AS Data
CROSS APPLY TargetData.nodes ('//RingBufferTarget/event') AS XEventData (XEvent)
where XEventData.XEvent.value('@name', 'varchar(4000)') = 'xml_deadlock_report'

在此情况下,您会看到 XML 格式中的死锁图。即使死锁的图形显示不正确,您仍会看到有效的 XML 内容从 xml_deadlock_report 报告。但是,您会收到以下错误消息︰

Msg 9436,级别 16 状态 1,第 1 行
XML 分析︰ 行 54,12,字符的结束标记与开始标记不匹配

原因

发生此问题是因为产生死锁图的 XML 架构的代码路径跳过受害者列表元素的结束标记。此外,代码路径添加不必要的死锁元素标记。

解决方案


此问题的修补程序首次发布累积更新 6 中的 SQL Server 2008 Service Pack 1。有关此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章 ︰

977443累计更新 SQL Server 2008 Service Pack 1 包 6注意:因为版本具有累计性,所以每个新修补程序版本包含上一个 SQL Server 2008 修补程序版本随附的所有修补程序和所有安全修复程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

SQL Server 2008年生成 SQL Server 2008 Service Pack 1 发布后发布的970365
为特定的 SQL Server 服务包创建 Microsoft SQL Server 2008年的修补程序。必须将一个 SQL Server 2008 Service Pack 1 的修补程序应用到安装的 SQL Server 2008 Service Pack 1。默认情况下,在下一次 SQL Server service pack 中包含任何 SQL Server service pack 中提供的修补程序。


SQL Server 2008 R2

重要:如果您运行的 SQL Server 2008 R2,您必须安装此修复程序。

累积更新 1 中首次发布此问题的修补程序。有关如何为 SQL Server 2008 R2 中获取此累积更新包的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

SQL Server 2008 R2 的981355累积更新包 1注意:由于 Build 是累积性的,因此每个新修补程序版本包含之前的 SQL Server 2008 R2 修补程序版本所包括的所有修订程序和安全修补程序。我们建议您考虑将应用包含此修复程序的最新的修补程序版本。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

981356 SQL Server 2008 R2 发布后发布 SQL Server 2008 R2 生成

状态

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

参考资料

SQL Server 的增量服务模式的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

935897的增量服务模式是可以从 SQL Server 团队提供报告的问题的修补程序


有关命名 SQL Server 更新架构的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章︰

822499对于 Microsoft SQL Server 软件更新程序包的新命名方案
有关软件更新术语的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:

用于描述 Microsoft 软件更新的标准术语的824684说明

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×