如何维护和疑难解答 BizTalk Server 数据库

文章翻译 文章翻译
文章编号: 952555 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Microsoft BizTalk Server 数据库和数据库的运行状况是非常重要的成功的 BizTalk Server 邮件服务环境。本文讨论使用 BizTalk Server 数据库时需要考虑的重要事项。这些注意事项如下所示:
  • 您必须禁用 自动更新统计信息自动创建统计信息 Microsoft SQL Server 选项。
  • 您必须正确设置并行度属性的最大程度。
  • 确定何时重新生成 BizTalk Server 的索引。
  • 锁定、 死锁,或阻止可能会发生。
  • 您可能会遇到问题的大型数据库或表。
  • BizTalk SQL Server 代理程序作业
  • 可能会挂起服务实例。
  • 您可能会遇到 SQL Server 和 BizTalk Server 的性能问题。
  • 您应该按照 BizTalk Server 的最佳做法。

简介

本文介绍了如何维护 BizTalk Server 数据库以及如何解决 BizTalk Server 数据库问题。

更多信息

已知的问题

您必须禁用自动更新统计信息和自动创建统计信息选项

您必须禁用 自动创建统计信息自动更新统计信息 BizTalkMsgBoxDb 数据库的选项。若要确定是否禁用这些设置,请在 SQL Server 执行下列存储的过程:
exec sp_dboption 'BizTalkMsgBoxDB', 'auto create statistics'
exec sp_dboption 'BizTalkMsgBoxDB', 'auto update statistics'

您应将 CurrentSetting 设置为 关闭.如果此设置被设置为 在上通过在 SQL Server 中执行下列存储的过程将其关闭:
exec sp_dboption 'BizTalkMsgBoxDB', 'auto create statistics', 'off'
exec sp_dboption 'BizTalkMsgBoxDB', 'auto update statistics', 'off'

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
917845 您遇到阻塞,死锁条件或其他 SQL Server 问题,当您试图连接到 BizTalk Server 中的 BizTalkMsgBoxDb 数据库
912262 自动更新统计信息选项中,自动创建统计信息的选项,并且在 SQL Server 数据库实例中承载 BizTalk Server BizTalkMsgBoxDB 数据库并行度设置已经关闭

您必须正确设置并行度属性的最大程度

在计算机上运行 SQL Server,并承载 BizTalkMsgBoxDb 数据库,将最大程度的并行度运行值和后属性设置为值为 1。若要为了确定最大程度的并行度设置,请执行下列存储过程对母版 SQL Server 中的数据库:
exec sp_configure 'max degree of parallelism'
如果出现和后属性未设置为 1 的值,以将它们设置为 1 的 SQL Server 中执行以下存储的过程:
exec sp_configure 'max degree of parallelism', '1'
reconfigure with override

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
899000 并行度设置的实例的 SQL Server 时,配置 BizTalk Server
917845 您遇到阻塞,死锁条件或其他 SQL Server 问题,当您试图连接到 BizTalk Server 中的 BizTalkMsgBoxDb 数据库

确定何时重新生成 BizTalk Server 的索引

大多数 BizTalk Server 索引聚集 (索引 ID: 1)。 可用于 DBCC SHOWCONTIG SQL Server 语句显示为 BizTalk Server 表的碎片信息。

BizTalk Server 索引都基于 GUID。因此,通常产生碎片。如果 DBCC SHOWCONTIG 语句返回的扫描密度值小于 30%,BizTalk Server 索引可以重新构建,停机期间。

许多 BizTalk Server 表包含使用数据类型定义的列。在这些列中,无法执行联机索引。因此,应永远不会重建 BizTalk Server 索引,而 BizTalk Server 处理数据。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
917845 您遇到阻塞,死锁条件或其他 SQL Server 问题,当您试图连接到 BizTalk Server 中的 BizTalkMsgBoxDb 数据库
有关如何分析 DBCC SHOWCONTIG 语句输出的详细信息,请访问以下 Microsoft 网站:
http://technet.microsoft.com/en-us/library/cc966523.aspx

锁定、 死锁,或阻止可能发生

通常情况下,锁和块环境中发生 BizTalk Server。但是,这些锁或块不再长一段时间。因此,阻塞和死锁表示潜在的问题。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
917845 您遇到阻塞,死锁条件或其他 SQL Server 问题,当您试图连接到 BizTalk Server 中的 BizTalkMsgBoxDb 数据库

您可能会遇到问题的大型数据库或表

我们已经看到了 5 GB 以上的 BizTalkMsgBoxDb 数据库时,可能出现性能问题。理想情况下,BizTalkMsgBoxDb 数据库应不会保存任何数据。BizTalkMsgBoxDb 数据库应被视为一个缓冲区,直到处理数据或将其移动到 BizTalkDTADb 数据库。

在后端和很多长时间运行业务流程使用功能强大的 SQL Server 的环境可能大于 5 GB 的 BizTalkMsgBoxDb 数据库。使用没有长时间运行的业务流程的高容量环境应具有 5 GB 比小得多的 BizTalkMsgBoxDb 数据库。

BizTalkDTADb 数据库不具有固定大小。但是,如果将会降低性能,数据库可能是太大。通常情况下,到 20 GB 15 GB 认为是太大。大型的 BizTalk Server 数据库后,您可能会遇到以下问题:
  • BizTalkMsgBoxDb 数据库继续增长。但是,日志文件和数据大小仍然较大。
  • BizTalk Server 采用较长的时间长于常规处理甚至一个简单的消息流方案。
  • 运行状况与活动跟踪 (HAT) 查询需要较长的时间比通常久,可能会超时。
  • 数据库日志文件将永远不会被截断。
  • BizTalk SQL Server 代理程序作业的运行速度比平常慢。
  • 显著增加某些表有过多的行与常规表的大小。
由于各种原因,数据库可能会大。由于这些原因可能如下所示:
  • BizTalk SQL Server 代理作业不运行
  • 大量的挂起的实例
  • 磁盘故障
  • 跟踪
  • 带宽限制
  • SQL Server 性能
  • 网络延迟
请确保您了解预期在您的环境以确定是否可以进行数据问题。

默认情况下,默认主机上启用了跟踪。BizTalk 要求 允许主机跟踪 在单独的主机选中选项。跟踪数据解码服务 (TDDS) 启用跟踪时,将跟踪事件数据库中数据的 BizTalkMsgBoxDb 到 BizTalkDTADb 数据库。如果停止跟踪主机,则 TDDS 不移动数据的 BizTalkDTADb 数据库和 TrackingData_x_x BizTalkMsgBoxDb 数据库中的表将增大。

我们建议将专用跟踪一台主机。若要允许 TDDS 维护新的跟踪事件,在高容量方案中,创建一个跟踪主机的多个实例。多个跟踪主机,不应存在。

在表中可以有太多的行。没有太多的行集编号。此外,此数目的行因何种数据存储在表中。例如,可能有超过一百万行的 dta_DebugTrace 表有太多的行。A 主机名Q_Suspended 表已超过 200000 次的行可能有过多的行。

使用正确的 BizTalk SQL Server 代理程序作业

BizTalk SQL Server 代理作业是为管理 BizTalk Server 数据库和维护高性能很重要的。

" 备份 BizTalk Server SQL Server 代理 作业是唯一受支持的方法来备份的 BizTalk Server 数据库。此作业所需的所有 BizTalk Server 数据库都使用完整恢复模型。您应该配置此作业的运行状况良好的 BizTalk Server 环境。SQL Server 方法可以用于备份的 BizTalk Server 数据库,才 SQL Server 代理已停止,并且所有 BizTalk Server 主机实例已都停止。

" MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 代理作业无限运行。因此,SQL Server 代理程序作业历史记录永远不会显示成功完成的消息。如果出现故障,该作业后一分钟内重新启动,并继续无限运行。因此,您可以放心地忽略该故障。此外,可以清除作业历史记录。您只需要考虑如果作业历史记录报告此作业不断失败,并重新启动。

" MessageBox_Message_Cleanup_BizTalkMsgBoxDb SQL Server 代理作业是唯一的 BizTalk Server 工作,因为它由启动不应启用 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 代理作业。

" DTA 清除和存档 SQL Server 代理作业帮助维护 BizTalkDTADb 数据库清除和存档跟踪的消息。此作业读取表中的每一行,并进行比较以确定是否应删除该记录的时间戳。

除所有 BizTalk SQL Server 代理程序作业 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 代理作业应在成功运行。

有关 BizTalk Server SQL Server 代理的所有作业的详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
919776 BizTalk Server 中的 SQL Server 代理程序作业的说明

服务实例可能会挂起

服务实例可以是已挂起 (恢复) 也已挂起 (不可恢复)。这些服务实例可能消息传递、 业务流程或端口。

这些服务实例可以使的 BizTalkMsgBoxDb 数据库不必要地增长,可以被终止。下表列出了哪种方法可以使用,具体取决于 BizTalk 版本:
收起该表格展开该表格
组中心帽子Terminate.vbs终结器工具
BizTalk 服务器 2010 年
BizTalk Server 2009 年
BizTalk Server 2006 R2
BizTalk Server 2006 年
BizTalk Server 2004 年
有关 Terminate.vbs 脚本的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/bb203857.aspx
缓存实例不出现在 组中心 页上,并且您不能暂停或终止它们。此限制是表增长的常见原因。若要防止在 BizTalk Server 2006 年的高速缓存服务实例的新傀儡邮件,请在 Microsoft 知识库文章 936536 中安装修补程序。此问题已经在 BizTalk Server 2006 R2 及更高版本。

请注意 傀儡消息是路由但未使用的消息。

有关详细信息,请单击下面的文章编号,以查看 Mirosoft 知识库中相应的文章:
936536 修复: 您遇到性能问题与 BizTalk Server 2006 年,限制邮件登录性能日志文件
当 BizTalk Server 主机实例终止时,缓存实例可能无法删除。要解决此问题在 BizTalk Server 2006 年,请在 Microsoft 知识库文章 944426 中安装此修补程序。BizTalk Server 2006 R2,在安装 BizTalk 2006 R2 Service Pack 1。此问题已经在 BizTalk Server 2009年及更高版本。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
974563 Microsoft BizTalk Server BizTalk Server 2006 R2 Service Pack 1 中包含的修补程序列表
944426 修复: 孤立的缓存实例可能生成在实例和主机队列在 2006 年 BizTalk Server 和 BizTalk Server 2006 R2 BizTalkMsgBoxDb 数据库的表
另一个常见的问题是路由故障报告 (RFRs) 可能会构建 BizTalkHost问: 和 BizTalkHostQ_Suspended 的表。RFRs 不会删除,并且此行为可能导致 BizTalkMsgBoxDb 数据库增长。若要解决此问题在 BizTalk Server 2006 年,请在 Microsoft 知识库文章 941690 中安装修补程序。此问题已经在 BizTalk Server 2006 R2 及更高版本。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
941690 修复:<biztalkhostname>BizTalk Server 2006年服务器上的 Q_Suspended 表</biztalkhostname>中不删除路由故障报告
术语"孤立消息"和"傀儡消息"经常互换使用。

孤立的消息是没有关联的实例的消息。例如,路由错误报告是一个孤立的消息。

傀儡消息是路由但未使用的消息。例如,邮件已传递到保护业务流程。但是,保护业务流程卸除另一个代码路径。业务流程实例完成。消息被丢弃,并且现在称为傀儡消息。

傀儡消息的说明,请访问下面的 MSDN 网站:
http://blogs.msdn.com/biztalk_core_engine/archive/2004/06/30/169430.aspx

您可能会遇到 SQL Server 和 BizTalk Server 的性能问题

BizTalk Server 一分钟内对 SQL Server 数百个较短的非常快速的交易记录。如果 SQL Server 不能保持此活动,BizTalk Server 可能会遇到性能问题。在性能监视器中,监视 平均磁盘秒/读取,平均磁盘秒/传输平均磁盘秒数/写入性能监视器 在计数器 物理磁盘 性能对象。少于 10 毫秒 (毫秒) 的最佳值。或更大时为 20 毫秒的值被认为是较差的性能。

有关 SQL Server 性能的详细信息,请访问以下 Microsoft 网站:
http://technet.microsoft.com/en-us/library/cc966540.aspx
有关 BizTalk Server 2004年数据库可用性的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/ms942187.aspx
有关 BizTalk Server 2006年数据库可用性的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/aa559920.aspx
有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
298475 如何解决 SQL Server 性能问题

271509 如何监视阻止 SQL Server 2005 中,并在 SQL Server 2000

在 BizTalk Server 中的最佳做法

启动 SQL Server SQL Server 代理。SQL Server 代理停止时,不能运行负责数据库维护的内置 BizTalk SQL Server 代理作业。此行为将导致数据库的增长,并且这一增长可能会导致性能问题。在 BizTalk Server 2004 Service Pack 2 (SP2) 及更高版本,已大大提高 BizTalk Server 数据库维护。

放入单独的驱动器上的 SQL Server LDF 和 MDF 文件。当在 BizTalkMsgBoxDb 和 BizTalkDTADb 数据库的 LDF 和 MDF 文件所在的驱动器上时,可能会发生磁盘争用。

如果您不会得益跟踪的邮件正文,不要启用此功能。但是,最好启用消息正文跟踪在开发和解决问题的解决方案。如果执行此操作,请确保您禁用邮件正文跟踪完成后。当启用跟踪的邮件正文时,BizTalk Server 数据库的增长。如果有一项业务需求要求启用跟踪的邮件正文,请确认 TrackedMessages_Copy_BizTalkMsgBoxDbDTA 清除和存档 SQL Server 代理作业成功运行。

通常情况下,较小的事务日志会导致更好的性能。若要保持较小的事务日志,配置 备份 BizTalk Server SQL Server 代理作业更频繁地运行。有关 BizTalk Server 优化的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/bb743398.aspx
BizTalkMgmtDb 数据库中的 sp_ForceFullBackup 存储过程还可用来帮助用户执行特定的数据和日志文件的完整备份。存储的过程更新 adm_ForceFullBackup 的值为 1。在下一次 备份 BizTalk Server 作业运行时,会创建一个完整的数据库备份集。

BizTalk Server 最佳实践分析器 (BPA) 可用于评估现有的 BizTalk Server 部署。BPA 执行许多与数据库相关的检查。BPA 有关的详细信息,请访问以下 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?FamilyID = 93d432fe-1370年-4b6d-aaa8-a0c43c30f5ab & displaylang = en

故障排除

最好的 BizTalk Server SQL Server 数据库的故障排除步骤取决于数据库问题,如阻塞或死锁的类型。若要解决 BizTalk Server 数据库问题,请按照下列步骤。

步骤 1: 启用并运行所有必需的 BizTalk SQL Server 代理程序作业

所有 BizTalk SQL Server 代理都作业除外 MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb 作业应该成功启用并运行。请不要禁用任何其他作业。

如果出现故障,使用 查看历史记录 要查看错误的信息,并相应地解决故障的 SQL Server 中的选项。请记住, MessageBox_Message_ManageRefCountLog_BizTalkMsgBoxDb SQL Server 代理作业无限运行。因此,您只需要考虑如果作业历史记录报告作业不断失败,并重新启动。

步骤 2: 使用 MsgBoxViewer 工具

虽然重现问题,请收集 MsgBoxViewer 数据。

MsgBoxViewer 工具可用于故障排除,因为它提供了 HTML 报告,详细信息表的大小和行数。该报告还可以帮助确定是否限制 BizTalk Server。此外,该工具提供的 BizTalk Server 数据库和 BizTalk Server 配置的快照。

有关如何下载的 MsgBoxViewer 工具的详细信息,请访问以下 Microsoft 网站:
http://blogs.technet.com/jpierauc/pages/msgboxviewer.aspx
有关带宽限制在 BizTalk Server 中的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/aa559893.aspx
当速度比平常慢运行 BizTalk Server 时,运行 MsgBoxViewer 工具中,并检查生成的 HTML 报告,有任何问题。" 摘要 部分列出了在黄色和潜在的问题,以红色的警告。

此外,您可以使用 MsgBoxViewer 工具输出以确定哪些表最大,并且具有大多数记录。下表列出了通常增长的最大的 BizTalk Server 表。此数据可用于确定哪些地方可能存在潜在的问题。
收起该表格展开该表格
说明
主机名Q_Suspended此表包含对后台处理表中与特定主机挂起实例相关联的消息。此表是在 BizTalkMsgBoxDb 数据库中。
主机名问:此表包含后台打印表中的邮件与特定主机相关联,并且未挂起的引用。此表是在 BizTalkMsgBoxDb 数据库中。
后台打印
部件
碎片
这些表 BizTalkMsgBoxDb 数据库中存储实际的邮件数据。
实例此表存储在 BizTalkMsgBoxDb 数据库中的所有实例,其当前状态。
TrackingData_0_x以下四个表将事件移至 BAMPrimaryImport 数据库 TDDS 的 BizTalkMsgBoxDb 数据库中存储的业务活动监视 (BAM) 跟踪事件。
TrackingData_1_x以下四个表存储跟踪的事件,将事件移至 BizTalkDTADB 数据库 TDDS 的 BizTalkMsgBoxDb 数据库中。
Tracking_Fragmentsx
Tracking_Partsx
Tracking_Spoolx
每个表中的两个是 BizTalkMsgBoxDb 和 BizTalkDTADb 数据库中。一个处于联机状态,并且其他处于脱机状态。

会在 BizTalk Server 2004 SP2 及更高版本中,TrackedMessages_Copy_BizTalkMsgBoxDb SQL Server 代理作业跟踪的邮件正文直接移至 BizTalkDTADb 数据库中的这些表。

在 BizTalk Server 2004 Service Pack 1 (SP1) 和 BizTalk Server 2004 年的早期版本中,TrackedMessages_Copy_BizTalkMsgBoxDb SQL Server 代理作业将跟踪的消息主体复制到 BizTalkMsgBoxDb 数据库中的这些表中。TrackingSpool_Cleanup_BizTalkMsgBoxDb SQL Server 代理作业清除脱机的表,并使联机的表时作业还使联机表脱机。
dta_ServiceInstances此表存储在 BizTalkDTADb 数据库中跟踪的服务实例的事件。如果此表很大,则可能大 BizTalkDTADb 数据库。
dta_DebugTrace此表存储在 BizTalkDTADb 数据库中的业务流程调试器事件。
dta_MessageInOutEvents此表存储在 BizTalkDTADb 数据库中跟踪的事件消息。这些修订的事件消息包含消息上下文信息。
dta_ServiceInstanceExceptions此表存储在 BizTalkDTADb 数据库中的任何挂起的服务实例的错误信息。
请考虑以下方案。
主机名Q_Suspended 表
如果 主机名Q_Suspended 表具有多条记录,这些表可能会有效挂起的实例中出现 组中心 或帽子。这些情况下,可以终止。如果这些情况下不出现在 组中心 或在帽子,实例可能会缓存实例或孤立的路由故障报告。当挂起的实例都将终止时,此表中的项,并且其相关后台打印和实例表中行的清理。

在这种情况下,将处理挂起的实例将其恢复,或终止它们。此外可以使用 BizTalk 终结器工具。
主机名问: 表
如果 主机名问: 表有许多记录,可能存在以下类型的实例:
  • 已准备好运行实例
  • 活动实例
  • 已冻结的实例
BizTalk Server 需要"追赶"和流程实例的时间。此表可以增长时处理的传入速率 outpaces 传出的处理速度。会出现其他问题,如大型数据库中 BizTalkDTADb 或 SQL Server 磁盘延迟时,会发生这种情况。
假脱机、 部件、 和碎片表
如果线轴、 部件和碎片表具有多条记录,许多消息是当前处于活动状态,冻结,或已暂停。根据大小、 各个部分,并在这些表中的碎片设置,将一封邮件可能会生成所有这些表。每个消息都有后台处理表中的一个行和在 Parts 表中的至少有一行。
实例表
BizTalk 管理员不应允许为实例表中保留多个挂起的实例。如果业务逻辑需要长时间运行的业务流程,只应保持已冻结的实例。请记住该服务实例可以与后台处理表中的多个消息相关联。
TrackingData_x_x
如果 TrackingData_x_x 表很大,跟踪主机 (TDDS) 未运行或未成功运行。如果跟踪主机实例运行,请检查事件日志和错误的信息的 BizTalkDTADb 数据库中的 TDDS_FailedTrackingData 表。如果具有 6 (大型数据库) 的状态,BizTalk 将带宽限制功能,这些表可以也会被截断使用 BizTalk 终结器工具。

如果 BizTalkMsgBoxDb TrackingData_ 中的序列号之间存在很大的差异x_x 表和 BAMPrimaryImport 或 BizTalkDTADb TDDS_StreamStatus 的表,然后 TDDS 可能不将数据从 BizTalkMsgBoxDb 数据库。若要解决此问题,请清除这些表和重置的序列号使用 BizTalk 终结器工具。

BizTalk Server 2006 R2,在安装来解决的已知的问题的跟踪数据的 BizTalk 2006 R2 Service Pack 1。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
969870 修复: 跟踪数据不会移如期从 BizTalkMsgBoxDb 数据库中 BizTalk Server 2006 R2 的 BizTalkDTADb 数据库

974563 Microsoft BizTalk Server BizTalk Server 2006 R2 Service Pack 1 中包含的修补程序列表
Tracking_Spool1 或 Tracking_Spool2 的表
如果 Tracking_Spool1 或 Tracking_Spool2 表变得大 BizTalk Server 2004 SP1 中,并在 BizTalk Server 2004 年的早期版本中,确认 TrackingSpool_Cleanup_BizTalkMsgBoxDb SQL Server 代理作业已启用并且正在运行。

有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
907661 BiztalkMsgBoxDb 数据库中的 Tracking_Spool1 或 Tracking_Spool2 表变得很大,在 BizTalk Server 2004 年


有关数据库维护 SDK 示例的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/ms966372.aspx
dta_DebugTrace 表和 dta_MessageInOutEvents
填充 dta_DebugTrace 表时 形状开始和结束 业务流程上已启用。如果 dta_DebugTrace 表中有多条记录,这些业务流程调试事件正在使用或已被使用。如果业务流程调试所必需的常规操作,则清除复选框 形状开始和结束 业务流程属性中的选项。

填充 dta_MessageInOutEvents 表时 消息发送和接收 业务流程和/或管线上已启用。如果不需要这些跟踪事件,清除此选项中的业务流程和/或管道属性复选框。

如果禁用这些跟踪事件或 BizTalkMsgBoxDb 数据库中存在待办事项,这些表可能会继续增加,因为 TDDS 继续将此数据移动到这些表。

默认情况下已启用全局跟踪。如果不需要全局更改,可以禁用它。有关详细信息,请访问以下 Microsoft 网站:
http://technet.microsoft.com/en-us/library/bb203858.aspx
如果 dta_DebugTrace 表和/或 BizTalkDTADb 数据库中的 dta_messageInOutEvents 表太大,您可以停止跟踪主机后,手动截断表。BizTalk 终结器工具还提供了此功能。

在 BizTalk Server 2004 年,BizTalkDTADb 数据库中的 dtav_FindMessageFacts 视图阻止 dta_MessageInOutEvents 表截断。若要解决此问题,请执行以下步骤:
  1. 停止跟踪主机和 DTA 清除和存档作业。
  2. 如果您想要截断 dta_messageInOutEvents 表,保存并删除 dtav_FindMessageFacts 视图。为此,请执行以下步骤:
    1. 在 SQL Server 中访问 BizTalkDTADb 数据库中的 dtav_FindMessageFacts 视图。
    2. 用鼠标右键单击 dtav_FindMessageFacts 查看,请单击 所有任务然后单击 生成 SQL 脚本.当 生成 SQL 脚本 打开对话框,不更改,然后单击 确定.
    3. 命名文件 dtav_FindMessageFacts.sql 中,然后再单击 保存.
    4. 用鼠标右键单击 dtav_FindMessageFacts 查看,并单击 删除.单击 删除所有.
您现在可以截断表。如果截断 dta_messageInOutEvents 表时,您还必须截断 dta_url 表。Dta_url 表只存在于 BizTalk Server 2004 年。

完成后,请按照下列步骤重新创建 dtav_FindMessageFacts 视图:
  1. 在 SQL Server 中打开新的查询。
  2. 在中 可用的数据库 列表中,选择 BizTalkDTADb 数据库。
  3. 执行您已保存的 dtav_FindMessageFacts.sql 脚本。这将重新创建的 BizTalkDTADb 数据库中的视图。
重新启动跟踪主机和 DTA 清除和存档 作业。
有关跟踪数据库大小调整原则的详细信息,请访问下面的 MSDN 网站:
http://msdn.microsoft.com/en-us/library/aa559162.aspx
dta_ServiceInstanceExceptions 表
Dta_ServiceInstanceExceptions 表通常变大定期已挂起实例的环境中。

步骤 3: 调查死锁情况

在死锁的情况下,DBCC 上启用跟踪 SQL Server 以便 SQLERROR 日志中写入的死锁信息。

在 SQL Server 2005 和更高版本中,执行以下语句:
DBCC TRACEON (1222,-1)
在 SQL Server 2000 中,执行以下语句:
DBCC TRACEON (1204)
此外,使用 PSSDiag 实用程序收集有关的数据 死锁锁: 事件和锁定: 死锁的链 事件。

BizTalkMsgBoxDB 的数据库是高容量和高事务性联机事务处理 (OLTP) 数据库。预计某些死锁,并且此死锁由 BizTalk Server 引擎在内部处理。在这种情况,在错误日志中不列出了任何错误。在调查死锁情况时, 正在调查在输出中的死锁必须关联起来,并在事件日志中出现死锁错误。

有关 PSSDiag 的 SQL 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
830232 PSSDIAG 数据收集实用程序

步骤 4: 查找被阻塞的进程

活动监视器用 SQL Server 来获取锁定系统进程的服务器进程标识符 (SPID)。然后,运行 SQL 事件探查器,以确定在锁定的 SPID 正在执行的 SQL 语句。

若要解决 SQL Server 中的锁定和阻塞问题,使用 SQL 实用程序 PSSDiag 捕获已启用阻止脚本的所有事务处理性 SQL 事件。

在 SQL Server 2005 和更高版本中,您可以指定 已阻止的进程阈值 设置,以确定该 SPID 或 Spid 阻塞时间超过指定的阈值。

有关 PSSDiag 的 SQL 的更多信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
830232 PSSDIAG 数据收集实用程序
有关已阻止的进程阈值的详细信息,请访问下面的 MSDN 网站:
http://msdn2.microsoft.com/en-us/library/ms181150.aspx
请注意 出现锁定时或在 SQL Server 中的阻止问题,我们建议您与 Microsoft 客户支持服务。Microsoft 客户支持服务可以帮助您配置了正确的 PSSDiag 实用程序选项。

步骤 5: 安装最新的 BizTalk Server 服务包和累积更新

BizTalk Server 2006 R2 及更高版本已移至一个累积更新 (CU) 模型中。累积更新中将包含最新补丁程序。BizTalk Server 2006 R2 Service Pack 1 也是可用的:
BizTalk Server 2006 R2 Service Pack 1
BizTalk Server 2004 SP1 中都有没有内置清除和存档的 BizTalkDTADb 数据库的功能。此功能将包含在 BizTalk Server 2004 SP2。BizTalkDTADb 数据库的大小,具体取决于安装 BizTalk Server 2004 SP2 可能需要数小时因为安装程序清除的 BizTalkDTADb 数据库。

有关已知问题时安装 BizTalk Server 2004 Service Pack 2,单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
940519 BizTalk Server 2004 Service Pack 2 中不记录在 ReadmeSP2.htm 文件中的已知的问题
在安装 BizTalk Server 2004 SP2 时,我们建议您执行以下步骤:
  1. 在 Microsoft 知识库文章 894253 中安装此修补程序。按照此知识文库文章 SQL Server 2000年中执行 bts_tracking_shrinkexistingdatabase.sql 脚本中的步骤。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    894253 修复: dtasp_PruneTrackingdatabase() 存储过程可能需要几个小时清理 BizTalk Server 2004 年 DTA 数据库
  2. 安装 BizTalk Server 2004 SP2。有关详细信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    888751 如何获取最新的 BizTalk Server 2004年服务包

删除所有数据

如果数据库是太大,或者如果要删除所有数据的首选的方法,可以删除所有数据。

警告: 不要使用此方法在任何环境中数据的业务关键型或如果需要的数据。

BizTalkMsgBoxDb 数据库清除的步骤

若要删除 BizTalkMsgBoxDb 数据库中的所有数据,您可以使用 BizTalk 终结器工具。否则,请按照下列步骤。

请注意 此操作将删除所有消息。务必非常谨慎,如果您按照这些步骤在生产环境中。
  1. 备份所有的 BizTalk Server 数据库。请记住,存储的过程可用于强制执行完全备份的数据和日志文件 BizTalkMgmtDb.dbo.sp_ForceFullBackup。执行此存储的过程,然后执行备份 BizTalk Server SQL 代理作业。
  2. 将从 Msgbox_cleanup_logic.sql 脚本复制 驱动器: \Program Files\Microsoft BizTalk 200x\schema 到 SQL Server。
  3. 此 SQL 针对执行脚本 BizTalkMsgBoxDb 数据库以更新 bts_CleanupMsgbox 存储过程。
  4. 停止所有的 BizTalk 主机、 服务和自定义独立的适配器。如果您使用 HTTP 或 SOAP 适配器,请重新启动 IIS 服务。
  5. 所有 BizTalkMsgBoxDb 数据库上执行的 bts_CleanupMsgbox 存储过程。
  6. 重新启动所有主机实例和 BizTalk Server 服务。
有关在 BizTalk Server 2006 年的 bts_CleanupMsgbox 存储过程的已知问题的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
924715 修复: 消息数据不从跟踪数据库中删除后运行 bts_CleanupMsgbox BizTalk Server 2006年测试环境中存储过程

BizTalkDTADb 数据库清除选项

若要从 BizTalkDTADb 数据库中删除所有数据,您可以使用 BizTalk 终结器工具。否则,请使用下列方法之一。

请注意 这两种方法删除的所有邮件。方法 2 速度更快。
  • 方法 1:
    1. 备份所有的 BizTalk Server 数据库。
    2. 执行 dtasp_PurgeAllCompletedTrackingData 存储过程。有关 dtasp_PurgeAllCompletedTrackingData 存储过程的详细信息,请访问下面的 MSDN 网站:
      http://msdn.microsoft.com/en-us/library/aa561918.aspx
      请注意 此操作将删除所有已完成的消息。
  • 方法 2:
    1. 备份所有 BizTalk 数据库。
    2. 执行 dtasp_CleanHMData 存储过程。只有 BizTalkDTADb 数据库包含许多不完整的情况下,必须将其删除时,才应使用此选项。

      为此,请执行以下步骤:
      1. 停止所有的 BizTalk 主机、 服务和自定义独立的适配器。如果您使用 HTTP 或 SOAP 适配器,请重新启动 IIS 服务。
      2. 在 BizTalkDTADb 数据库上执行的 dtasp_CleanHMData 存储过程。
      3. 重新启动所有主机和 BizTalk Server 服务。
仅限 BizTalk Server 2004年的步骤
若要从 BizTalk Server 2004 年 BizTalkDTADb 数据库中删除所有数据,请按照下列步骤。

请注意 此操作将删除所有已完成的消息。
  1. 备份所有的 BizTalk Server 数据库。
  2. 停止所有的 BizTalk 主机、 服务和自定义独立的适配器。如果您使用 HTTP 或 SOAP 适配器,请重新启动 IIS 服务。
  3. 在 Microsoft 知识库文章 894253 中安装此修补程序。按照此知识文库文章 SQL Server 2000年中运行 Bts_tracking_shrinkexistingdatabase.sql 脚本中的步骤。

    有关 dtasp_PruneTrackingdatabase 存储过程的信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    894253 修复: dtasp_PruneTrackingdatabase() 存储过程可能需要几个小时清理 BizTalk Server 2004 年 DTA 数据库
  4. 重新启动所有主机和 BizTalk 服务。
请注意 如果您必须拥有的跟踪数据,重新启动 BizTalkDTADb 数据库,将数据库还原到另一个 SQL Server,然后清除原始的 BizTalkDTADb 数据库。

如果您需要分析的 MsgBoxViewer 数据或 PSSDiag 输出的帮助,请联系 Microsoft 客户支持服务。客户支持服务的电话号码和关于支持费用的信息的完整列表,请访问以下 Microsoft 网站:
http://support.microsoft.com/contactus/?ws=support
请注意 联系客户支持服务之前,请压缩 MsgBoxViewer 数据、 PSSDiag 输出和更新的事件日志 (.evt 文件)。您可能需要发送这些文件,以 BizTalk Server 支持工程师。

属性

文章编号: 952555 - 最后修改: 2011年8月12日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft BizTalk Server Branch 2010
  • Microsoft BizTalk Server Developer 2010
  • Microsoft BizTalk Server Enterprise 2010
  • Microsoft BizTalk Server Standard 2010
  • Microsoft BizTalk Server 2009 Enterprise
  • Microsoft BizTalk Server 2009 Developer
  • Microsoft BizTalk Server 2009 Standard
  • Microsoft BizTalk Server 2009 Branch
  • Microsoft BizTalk Server 2006 R2 Enterprise Edition
  • Microsoft BizTalk Server 2006 R2 Developer Edition
  • Microsoft BizTalk Server 2006 R2 Standard Edition
  • Microsoft BizTalk Server 2006 Enterprise Edition
  • Microsoft BizTalk Server 2006 Developer Edition
  • Microsoft BizTalk Server 2006 Standard Edition
  • Microsoft BizTalk Server 2004 Enterprise Edition
  • Microsoft BizTalk Server 2004 Developer Edition
  • Microsoft BizTalk Server 2004 Standard Edition
关键字:?
kbpubtypekc kbinfo kbhowto kbmt KB952555 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 952555
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