发布日期: 2006年09月19日
小结:本白皮书介绍如何配置 Biztalk Server 2004 SP2,以利用自动存档和清除 Biztalk 跟踪数据库的功能。它还介绍了为实现和维持高性能在配置过程中需要考虑的因素。
自动存档和清除功能的工作原理 | |
---|---|
如何配置 BTS_BACKUP_USERS 角色以存档和清除 BizTalk 跟踪数据库中的数据 | |
如何配置 DTA 清除和存档作业 | |
如何从 BizTalk 跟踪数据库中清除数据 | |
如何从 BizTalk 跟踪数据库中手动清除数据 | |
如何启用自动存档验证 | |
如何将跟踪的消息复制到 BizTalk 跟踪数据库中 | |
提高存档和清除进程的性能 |
随着 Microsoft® Biztalk® Server 在系统中处理的数据的增多,BizTalk 跟踪 (BizTalkDTADb) 数据库的大小也会持续增长。不受控制的增长将会降低系统性能,并可能导致跟踪数据传送服务 (TDDS) 出错。除了一般的跟踪数据之外,跟踪的消息也会在 MessageBox 数据库中累积,导致磁盘性能下降。
尽管 Biztalk Server 2004 附带了用于存档跟踪消息和清除 Biztalk 跟踪数据库的示例脚本,但 Biztalk Server 2004 Service Pack 2 (SP2) 包括使用 DTA 清除和存档作业自动执行这两个过程的存档和清除功能。通过存档和清除 Biztalk 跟踪数据库中的数据,您可以保持一个运行状况良好的系统,并将跟踪数据进行存档以供将来使用。由于 Biztalk 跟踪数据库存档会随着时间的推移不断累积而占用磁盘空间,因此最好定期将 Biztalk 跟踪数据库存档移至辅助存储空间。
在清除 Biztalk 跟踪数据库中的数据时,DTA 清除和存档作业将清除不同类型的跟踪信息,例如消息和服务实例信息、业务流程事件信息,以及规则引擎跟踪数据。
跟踪数据记录的保留时间取决于将跟踪数据插入 Biztalk 跟踪数据库的时间。DTA 清除和存档作业使用时间戳来持续验证该记录是否早于数据生存时段。在每一个生存时段之后,将对 Biztalk 跟踪数据库进行存档,并创建一个新的存档文件。在作业计划指定的每个 SQL Server™ 代理作业时间间隔之后,将清除在该生存时段之前完成的所有跟踪数据。
Biztalk Server 使用了“软清除”和“硬清除”概念。软清除用来清除已完成的实例,而硬清除仅用来清除未完成的实例。
在 DTA 存档和清除作业中,LiveHours 和 LiveDays 参数之和就是要在 Biztalk Server 环境中维护的数据生存时段。将清除与在此数据生存时段之前完成的实例相关联的所有数据。
例如,可配置 DTA 清除和存档作业,使其每 20 分钟运行一次,并进行以下设置:LiveHours=1 和 LiveDays=0。SQL Server 代理作业第一次运行时 (T0),它通过创建存档对跟踪数据库进行备份,同时在数据库中保存一个具有此时间戳的条目。为了清除跟踪数据,必须保证存档成功。如果存档成功,则与 1 小时前完成的实例相关联的所有数据都将被清除。每次运行该作业时,都将清除 1 小时之前完成的数据。在第 3 次运行时(1 小时后),将创建一个新的存档,它包含在前 1 小时内插入跟踪数据库的所有实例的数据。
为了与上面的示例相匹配,需要在 DTA 清除和存档作业中配置清除和存档的步骤,代码如下:
exec dtasp_BackupAndPurgeTrackingDatabase
1, --@nLiveHours 1,
0, --@nLiveDays
1, --@nHardDeleteDays
‘\\server\backup’, --@nvcFolder
null, --@nvcValidatingServer
0 --@fForceBackup Soft purge process
最后一次备份的时间戳存储在 Biztalk 跟踪数据库中,以确保只清除上一存档中已有的数据。为了增加可靠性,存档按大约 10 分钟的间隔依次重叠。下图显示了基于上述示例的软清除过程。请注意,存档和清除任务无需同时进行。
由于软清除只清除与已完成的实例相关联的数据,因此,如果存在许多无限期运行的循环实例,则跟踪数据库将会增长,并且这些实例将永远无法清除。使用硬清除日期可以清除指定时间间隔之前的所有信息,只有指示服务存在的信息除外。硬清除设置应始终大于常规清除设置。
存档和清除所包括的功能如下表所述:
功能 | 说明 |
---|---|
硬清除 | 使用该功能,可以配置一个时间间隔来清除指定日期之前的未完成实例的信息。 |
将跟踪的消息复制到跟踪数据库 | 使用“CopyTrackedMessageToDTA”选项,可以直接将跟踪的消息从 MessageBox 服务器复制到 Biztalk 跟踪数据库中。使用 DTA 清除和存档作业清除数据时,要求进行此操作。 |
存档验证 | 使用该功能,可以选择设置一个辅助数据库服务器,以便在创建存档时对其进行验证。 |
运行状况与活动跟踪 (HAT) 支持多个 Biztalk 跟踪数据库版本 | 使用该功能,可以在安装 Biztalk Server 2004 SP2 之前和之后,对多种版本的 Biztalk Server 2004 跟踪数据库使用 HAT。 |
减少跟踪数据 | 在不减少生成的任何跟踪信息的情况下,显著减少存储的跟踪数据的数量。这样可以降低跟踪数据库的增长速度。 |
更快的 HAT 操作,对数据库架构进行了显著优化 | 使您可以使用 HAT 任务在大型数据库中查找消息和服务实例;已对此功能进行了显著优化。 |
使用存档验证,您可以设置辅助数据库服务器,以便在创建存档(备份)时对其进行验证。由于存档进程是一个简单备份,因此存储在磁盘上的实际图像可能由于硬件问题而受损。使用存档验证功能,可确保存档成功并且可以进行还原。此功能为可选功能
存档验证功能以下列方式工作:
1. | 在创建存档后,将通知验证服务器已创建了新的存档。 | ||||
---|---|---|---|---|---|
2. | 它将尝试还原该存档。 • 如果还原成功完成,则它将此信息发送回 DTA 数据库。在成功完成还原之前,清除作业将不清除其他任何数据。 • 如果还原失败,则将此信息返回,然后清除作业将创建另一个存档并等待对该新存档进行验证。这样可避免损坏的存档导致您丢失跟踪数据。 | • | 如果还原成功完成,则它将此信息发送回 DTA 数据库。在成功完成还原之前,清除作业将不清除其他任何数据。 | • | 如果还原失败,则将此信息返回,然后清除作业将创建另一个存档并等待对该新存档进行验证。这样可避免损坏的存档导致您丢失跟踪数据。 |
• | 如果还原成功完成,则它将此信息发送回 DTA 数据库。在成功完成还原之前,清除作业将不清除其他任何数据。 | ||||
• | 如果还原失败,则将此信息返回,然后清除作业将创建另一个存档并等待对该新存档进行验证。这样可避免损坏的存档导致您丢失跟踪数据。 |
DTA 清除和存档 (BizTAlkDTADb) 作业通常使用已登录的 SQL Server 代理服务帐户用户的凭据运行。但是,为了增强安全性,可以将 DTA 清除和存档 (BizTalkDTADb) 作业配置为使用 BTS_BACKUP_USERS 角色的成员帐户的凭据运行。通过以具有基本权限的帐户身份运行 SQL Server 代理作业,这样可以防止特权提升。
若要执行此过程,登录使用的帐户必须是 SQL Server sysadmin 固定服务器角色的成员。
配置 BTS_BACKUP_USERS 角色以存档和清除 Biztalk 跟踪数据库中的数据
1. | 依次单击“开始”、“程序”、“Microsoft SQL Server”和“企业管理器” |
---|---|
2. | 通过单击相应的服务器以打开该服务器,依次双击“数据库”和“BizTalkDTADb”,然后单击“角色”。 |
3. | 在详细信息窗格中,双击“BTS_BACKUP_USERS”。 |
4. | 在“数据库角色属性 - BTS_BACKUP_USERS”对话框中,单击“添加”。 |
5. | 在“添加角色成员”对话框中,选择具有 SQL Server 代理服务凭据的帐户,然后单击“确定”。 注意: 如果未列出要为该角色添加的帐户,必须先授予该帐户相应的 SQL Server 登录和数据库用户权限。有关详细信息,请参阅 SQL Server 联机从书。 |
在对 Biztalk 跟踪 (BizTalkDTADb) 数据库中的数据进行存档或清除之前,必须首先配置 DTA 清除和存档 (BizTalkDTADb) 作业。此作业被配置为调用存储过程 dtasp_BackupAndPurgeTrackingDatabase,您必须在此作业中配置该存储过程所使用的六个参数。
若要执行此过程,登录使用的帐户必须是 SQL Server sysadmin 固定服务器角色的成员。
配置 DTA 清除和存档作业
1. | 在 Biztalk 跟踪 (BizTalkDTADb) 数据库的宿主 SQL Server 上,依次单击“开始”、“程序”、“Microsoft SQL Server”,然后单击“企业管理器”。 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
2. | 通过单击相应的服务器以打开该服务器,依次双击“管理”、“SQL Server 代理”,然后单击“作业”。 | ||||||||||||
3. | 在详细信息窗格中,右键单击“DTA 清除和存档(BizTalkDTADb)”,然后单击“属性”。 | ||||||||||||
4. | 在“DTA 清除和存档(BizTalkDTADb)属性”对话框中,单击“步骤”选项卡,单击“存档和清除”,然后单击“编辑”。 | ||||||||||||
5. | 在“常规”选项卡的“命令”框中,根据需要编辑以下参数,然后单击“确定”。 • @nLiveHours tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认值为 0 小时。 • @nLiveDays tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认间隔为 1 天。 注意: 对于 Biztalk 跟踪 (BizTalkDTADb) 数据库来说,LiveHours 与 LiveDays 相加之和即为要在 Biztalk Server 环境中维护的数据生存时段。将删除与在数据生存时段之前完成的实例相关联的所有数据。 • @nHardDeleteDays tinyint — 将删除此前的所有数据(即使数据不完整)。为 HardDeleteDays 指定的时间间隔应大于数据生存时段。数据生存时段是维护 Biztalk 跟踪 (BizTalkDTADb) 数据库中的跟踪数据所需的时间间隔。早于此间隔的所有内容都应在下一次存档时进行存档,然后清除。默认值为 30 天。 • @nvcFolder nvarchar(1024) — 存放备份文件的文件夹。 • @nvcValidatingServer sysname — 将对其执行验证的服务器。NULL 值表示不执行任何验证。默认值为 NULL。 • @fForceBackup int — 默认值为 0。此参数保留供将来使用。 所编辑的命令应类似于: exec dtasp_BackupAndPurgeTrackingDatabase 12, 1, 3, '\\MyBizTalkServer\backup', null, 0 | • | @nLiveHours tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认值为 0 小时。 | • | @nLiveDays tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认间隔为 1 天。 注意: 对于 Biztalk 跟踪 (BizTalkDTADb) 数据库来说,LiveHours 与 LiveDays 相加之和即为要在 Biztalk Server 环境中维护的数据生存时段。将删除与在数据生存时段之前完成的实例相关联的所有数据。 | • | @nHardDeleteDays tinyint — 将删除此前的所有数据(即使数据不完整)。为 HardDeleteDays 指定的时间间隔应大于数据生存时段。数据生存时段是维护 Biztalk 跟踪 (BizTalkDTADb) 数据库中的跟踪数据所需的时间间隔。早于此间隔的所有内容都应在下一次存档时进行存档,然后清除。默认值为 30 天。 | • | @nvcFolder nvarchar(1024) — 存放备份文件的文件夹。 | • | @nvcValidatingServer sysname — 将对其执行验证的服务器。NULL 值表示不执行任何验证。默认值为 NULL。 | • | @fForceBackup int — 默认值为 0。此参数保留供将来使用。 所编辑的命令应类似于: exec dtasp_BackupAndPurgeTrackingDatabase 12, 1, 3, '\\MyBizTalkServer\backup', null, 0 |
• | @nLiveHours tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认值为 0 小时。 | ||||||||||||
• | @nLiveDays tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认间隔为 1 天。 注意: 对于 Biztalk 跟踪 (BizTalkDTADb) 数据库来说,LiveHours 与 LiveDays 相加之和即为要在 Biztalk Server 环境中维护的数据生存时段。将删除与在数据生存时段之前完成的实例相关联的所有数据。 | ||||||||||||
• | @nHardDeleteDays tinyint — 将删除此前的所有数据(即使数据不完整)。为 HardDeleteDays 指定的时间间隔应大于数据生存时段。数据生存时段是维护 Biztalk 跟踪 (BizTalkDTADb) 数据库中的跟踪数据所需的时间间隔。早于此间隔的所有内容都应在下一次存档时进行存档,然后清除。默认值为 30 天。 | ||||||||||||
• | @nvcFolder nvarchar(1024) — 存放备份文件的文件夹。 | ||||||||||||
• | @nvcValidatingServer sysname — 将对其执行验证的服务器。NULL 值表示不执行任何验证。默认值为 NULL。 | ||||||||||||
• | @fForceBackup int — 默认值为 0。此参数保留供将来使用。 所编辑的命令应类似于: exec dtasp_BackupAndPurgeTrackingDatabase 12, 1, 3, '\\MyBizTalkServer\backup', null, 0 | ||||||||||||
6. | 在详细信息窗格中,右键单击“DTA 清除和存档(BizTalkDTADb)”作业,然后单击“启用作业”。 在“启用”列中,状态将更改为“是”。 |
在清除 Biztalk 跟踪 (BizTalkDTADb) 数据库中的数据时,DTA 清除和存档作业将从 Biztalk 跟踪 (BizTalkDTADb) 数据库中清除不同类型的跟踪信息,例如消息和服务实例信息、业务流程事件信息和规则引擎跟踪数据。
要点:
使用此过程将不会存档 Biztalk 跟踪 (BizTalkDTADb) 数据库。
若要执行此过程,登录使用的帐户必须是 SQL Server sysadmin 固定服务器角色的成员。
清除 Biztalk 跟踪数据库中的数据
1. | 依次单击“开始”、“程序”、“Microsoft SQL Server”和“企业管理器”。 | ||||||||
---|---|---|---|---|---|---|---|---|---|
2. | 通过单击相应的服务器以打开该服务器,依次双击“管理”、“SQL Server 代理”,然后单击“作业”。 | ||||||||
3. | 在详细信息窗格中,右键单击“DTA 清除和存档(BizTalkDTADb)”,然后单击“属性”。 | ||||||||
4. | 在“DTA 清除和存档(BizTalkDTADb)属性”对话框中,单击“步骤”选项卡,单击“存档和清除”,然后单击“编辑”。 | ||||||||
5. | 在“常规”选项卡的“命令”框中,将 exec dtasp_BackupAndPurgeTrackingDatabase 更改为 exec dtasp_PurgeTrackingDatabase。 小心: exec dtasp_PurgeTrackingDatabase 存储过程将不会存档 Biztalk 跟踪 (BizTalkDTADb) 数据库。在使用此选项之前,应确保不再需要存档跟踪数据。 | ||||||||
6. | 在“命令”框中,根据需要编辑以下参数,然后单击“确定”。 • @nHours tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。 • @nDays tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认间隔为 1 天。 • @nHardDays tinyint — 将这一天之前的所有数据删除,即使这些数据是不完整的。为 HardDeleteDays 指定的时间间隔应大于数据生存时段。数据生存时段是维护 Biztalk 跟踪 (BizTalkDTADb) 数据库中的跟踪数据所需的时间间隔。早于此间隔的所有内容都应在下一次存档时进行存档,然后清除。 • @dtLastBackup — 将此参数设置为 GetUTCDate() 可以从 Biztalk 跟踪 (BizTalkDTADb) 数据库中清除数据。如果设置为 NULL,则数据不会从数据库中清除。 | • | @nHours tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。 | • | @nDays tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认间隔为 1 天。 | • | @nHardDays tinyint — 将这一天之前的所有数据删除,即使这些数据是不完整的。为 HardDeleteDays 指定的时间间隔应大于数据生存时段。数据生存时段是维护 Biztalk 跟踪 (BizTalkDTADb) 数据库中的跟踪数据所需的时间间隔。早于此间隔的所有内容都应在下一次存档时进行存档,然后清除。 | • | @dtLastBackup — 将此参数设置为 GetUTCDate() 可以从 Biztalk 跟踪 (BizTalkDTADb) 数据库中清除数据。如果设置为 NULL,则数据不会从数据库中清除。 |
• | @nHours tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。 | ||||||||
• | @nDays tinyint — 存在时间大于(生存小时数)+(生存天数)的任何已完成实例及其所有相关数据都将被删除。默认间隔为 1 天。 | ||||||||
• | @nHardDays tinyint — 将这一天之前的所有数据删除,即使这些数据是不完整的。为 HardDeleteDays 指定的时间间隔应大于数据生存时段。数据生存时段是维护 Biztalk 跟踪 (BizTalkDTADb) 数据库中的跟踪数据所需的时间间隔。早于此间隔的所有内容都应在下一次存档时进行存档,然后清除。 | ||||||||
• | @dtLastBackup — 将此参数设置为 GetUTCDate() 可以从 Biztalk 跟踪 (BizTalkDTADb) 数据库中清除数据。如果设置为 NULL,则数据不会从数据库中清除。 | ||||||||
7. | 在详细信息窗格中,右键单击“DTA 清除和存档(BizTalkDTADb)”作业,然后单击“启用作业”。 | ||||||||
8. | 在“启用”列中,状态将更改为“是”。 |
由于 DTA 存档和清除 SQL Server 代理作业不断清除 Biztalk 跟踪 (BizTalkDTADb) 数据库并对存储的跟踪数据进行压缩,因此可减少从该数据库中手动清除数据的需要。但是,如果 Biztalk 跟踪 (BizTalkDTADb) 数据库迅速增长,从而导致性能持续下降以及 DTA 存档和清除作业无法跟上数据库的增长速度,则可能需要手动清除数据。
小心:
执行此过程将会从 Biztalk 跟踪 (BizTalkDTADb) 数据库中删除已完成实例的所有跟踪数据,而不考虑这些实例的完成时间。在执行此过程之前,应将 Biztalk 跟踪 (BizTalkDTADb) 数据库与其他 Biztalk Server 数据库分开进行存档。
若要执行此过程,登录使用的帐户必须是 SQL Server sysadmin 固定服务器角色的成员。
手动清除 Biztalk 跟踪数据库中的数据
1. | 备份 Biztalk Server 数据库。 | ||||||
---|---|---|---|---|---|---|---|
2. | 存档 Biztalk 跟踪 (BizTalkDTADb) 数据库。 | ||||||
3. | 打开“服务”。依次单击“开始”、“运行”,然后键入 services.msc。 | ||||||
4. | 右键单击以下每个服务,然后单击“停止”: • Biztalk Base EDI Service • 企业单一登录服务 • 规则引擎更新服务 | • | Biztalk Base EDI Service | • | 企业单一登录服务 | • | 规则引擎更新服务 |
• | Biztalk Base EDI Service | ||||||
• | 企业单一登录服务 | ||||||
• | 规则引擎更新服务 | ||||||
5. | 依次单击“开始”、“程序”、“Microsoft Biztalk Server 2004”和“BizTalk Server 管理”。 | ||||||
6. | 在“BizTalk Server 管理控制台”中,双击“Microsoft Biztalk Server 2004(本地)”节点,然后展开“主机”节点。 | ||||||
7. | 对于每个进程内主机,请转至结果窗格右侧的主机实例列表,右键单击正在运行的各个主机实例,然后单击“停止”。 | ||||||
8. | 依次单击“开始”、“运行”,键入 cmd,然后单击“确定”。 | ||||||
9. | 在 Biztalk 组中所有安装了 Biztalk Server 运行时的计算机上,在命令提示符下键入: net stop iisadmin /y 这将停止 IIS 管理服务,并逐个停止所有依存的服务。在停止每个服务时,请记下这些服务的列表。以后重新启动 IIS 时,将需要使用此服务列表。 以下是一个在发出此命令后将显示的输出示例(您的计算机上所列出的依存服务可能与此不同): The following services are dependent on the IIS Admin Service service. Stopping the IIS Admin Service service will also stop these services. World Wide Web Publishing Service HTTP SSL | ||||||
10. | 依次单击“开始”、“运行”,键入 isqlw.exe,然后单击“确定”。 | ||||||
11. | 在“连接到 SQL Server”对话框中,指定 Biztalk 跟踪 (BizTalkDTADb) 数据库所在的 SQL Server 的名称以及相应的验证类型,以连接到相应的 SQL Server。 | ||||||
12. | 在 SQL 查询分析器中,依次单击“BizTalkDTADb”数据库、“存储过程”,右键单击“dbo.dtasp_PurgeAllCompletedTrackingData”,然后单击“打开”。 | ||||||
13. | 在“执行过程”对话框中,单击“执行”。 此存储过程将删除与完成的实例相关联的所有跟踪数据,而不考虑其完成时间。 | ||||||
14. | 打开“服务”。依次单击“开始”、“运行”,然后键入 services.msc。 | ||||||
15. | 右键单击以下每个服务,然后单击“启动”: • Biztalk Base EDI Service • 企业单一登录服务 • 规则引擎更新服务 | • | Biztalk Base EDI Service | • | 企业单一登录服务 | • | 规则引擎更新服务 |
• | Biztalk Base EDI Service | ||||||
• | 企业单一登录服务 | ||||||
• | 规则引擎更新服务 | ||||||
16. | 依次单击“开始”、“程序”、“Microsoft Biztalk Server 2004”和“BizTalk Server 管理”。 | ||||||
17. | 对于每个进程内主机,请转至结果窗格右侧的主机实例列表,右键单击已停止的各个主机实例,然后单击“启动”。 | ||||||
18. | 依次单击“开始”、“运行”,键入 cmd,然后单击“确定”。 | ||||||
19. | 在命令提示符下,重新启动您在步骤 9 中停止的每个 IIS 服务。键入以下内容: net start<IISserviceName> 其中,服务名为要重新启动的 IIS 服务的名称。您必须对每个 IIS 服务重复执行此命令。 |
使用自动存档验证可以在创建存档时对其进行验证。启用自动存档验证之前,必须先设置一个辅助数据库服务器,也称为验证服务器。由于存档进程是一个简单备份,因此存储在磁盘上的实际图像可能由于硬件问题而受损。
使用存档验证功能,可确保存档(备份)成功并且可以进行还原。在创建存档后,将通知验证服务器已创建了新的存档。验证服务器将尝试还原该存档。验证服务器必须是另一个 SQL Server 实例,它与运行作业的 SQL Server 实例不同。
如果还原成功,则验证服务器会将此信息发送回 Biztalk 跟踪 (BizTalkDTADb) 数据库。在成功完成还原之前,清除作业将不清除其他任何数据。
如果还原不成功,则验证服务器会将此信息发送回 Biztalk 跟踪数据库。清除作业将创建另一个存档并等待对该新存档进行验证。这样可避免由于存档损坏而导致丢失跟踪数据的可能性。
若要执行此过程,登录使用的帐户必须是 SQL Server sysadmin 固定服务器角色的成员。
启用自动存档验证
1. | 在验证服务器上,依次单击“开始”、“运行”,键入 isqlw.exe,然后单击“确定”。 | ||||
---|---|---|---|---|---|
2. | 单击“文件”,然后单击“连接”。 | ||||
3. | 在“连接到 SQL Server”对话框中,从列表中单击相应的服务器,或单击省略号 (…) 按钮以浏览到可在其中通过对还原进程执行测试来验证存档的 SQL 服务器,然后单击“确定”。 注意: 由于在验证存档时会降低系统性能,因此,此服务器不应同时用作其他 Biztalk Server 的数据库服务器。 | ||||
4. | 依次单击“文件”、“打开”,然后浏览至以下 SQL 脚本: %SystemRoot%\Program Files\Microsoft Biztalk Server 2004\Schema\BTS_Tracking_ValidateArchive.sql | ||||
5. | 单击“查询”,然后单击“执行”。 注意: 只有当将 Biztalk 跟踪 (BizTalkDTSDb) 数据库存档到其中的文件夹是网络共享时,BTS_Tracking_ValidateArchive.sql 脚本才能正常工作。 BTS_Tracking_ValidateArchive.sql 脚本将创建一个名为 ValidateArchive 的 SQL Server 代理作业。 | ||||
6. | 依次单击“开始”、“程序”、“Microsoft SQL Server”和“企业管理器”。 存档和清除进程可能会访问或更新其他 SQL Server 中的数据库,因此必须在相关的 SQL Server 实例之间设置链接服务器。必须在以下项之间设置链接服务器: • 每个 Biztalk MessageBox (BizTalkMsgBoxDb) 数据库以及 Biztalk 跟踪 (BizTalkDTADb) 数据库。 • Biztalk 跟踪 (BizTalkDTADb) 数据库以及用于存档验证的验证服务器。 注意: 运行作业所使用的帐户对链接的双方数据库都应具有数据库操作员 (DBO) 权限。 | • | 每个 Biztalk MessageBox (BizTalkMsgBoxDb) 数据库以及 Biztalk 跟踪 (BizTalkDTADb) 数据库。 | • | Biztalk 跟踪 (BizTalkDTADb) 数据库以及用于存档验证的验证服务器。 |
• | 每个 Biztalk MessageBox (BizTalkMsgBoxDb) 数据库以及 Biztalk 跟踪 (BizTalkDTADb) 数据库。 | ||||
• | Biztalk 跟踪 (BizTalkDTADb) 数据库以及用于存档验证的验证服务器。 | ||||
7. | 通过单击相应的服务器以打开该服务器,双击“安全性”,右键单击“链接服务器”,然后单击“新建链接服务器”。 | ||||
8. | 在“链接服务器属性 - 新建链接服务器”对话框的“链接服务器”中,输入要链接到的服务器的名称。 例如,BizTalk MessageBox (BizTalkMsgBoxDb) 数据库、BizTalk 跟踪 (BizTalkDTADb) 数据库或验证服务器的宿主服务器。 | ||||
9. | 在“服务器类型”下,单击“SQL Server”,然后单击“确定”。 | ||||
10. | 在 SQL Server 企业管理器中,通过单击相应的服务器以打开该服务器,依次双击“管理”、“SQL Server 代理”,然后单击“作业”。 | ||||
11. | 在详细信息窗格中,右键单击“ValidateArchive”,然后单击“属性”。 | ||||
12. | 在“ValidateArchive 属性”对话框中,依次单击“步骤”选项卡、“验证”,然后单击“编辑”。 | ||||
13. | 在“编辑作业步骤”对话框的“常规”选项卡上的“命令”框中,将命令“exec dtasp_ValidateArchive null, null”中的“null, null”替换为包含在单引号中的 Biztalk 跟踪数据库的宿主服务器名称,该名称后面跟有包含在引号中的 Biztalk 跟踪数据库名称,然后单击“确定”。例如: exec dtasp_ValidateArchive '<TrackingServerName>', '<TrackingDatabaseName>' 注意: ValidateArchive 作业没有计划并且不应为其配置计划。相反,在创建存档时 DTA 清除和存档 (BizTalkDTADb) 作业将自动启动此作业。 |
存档和清除进程可能会访问和/或更新其他 SQL Server 中的数据库,因此必须在所涉及的 SQL Server 实例之间设置链接服务器。可以使用链接服务器直接将跟踪的消息从 Biztalk MessageBox (BizTalkMsgBoxDb) 数据库服务器复制到 Biztalk 跟踪 (BizTalkDTADb) 数据库中。必须在以下项之间设置链接服务器:
• | 每个 Biztalk MessageBox (BizTalkMsgBoxDb) 数据库以及 Biztalk 跟踪 (BizTalkDTADb) 数据库。 |
---|---|
• | Biztalk 跟踪 (BizTalkDTADb) 数据库以及用于存档验证的验证服务器。 |
注意:
在 SQL Server 代理中,验证复制作业能够正常运行,而不会产生任何错误。否则,错误可能会阻止将数据移动到跟踪数据库中。
重要提示 如果添加新的 MessageBox 数据库,将需要为新的 MessageBox 数据库再执行一次此过程。
若要执行此过程,登录使用的帐户必须是 SQL Server sysadmin 固定服务器角色的成员。
将跟踪消息复制到 Biztalk 跟踪数据库
1. | 依次单击“开始”、“程序”、“Microsoft SQL Server”和“企业管理器”。 |
---|---|
2. | 通过单击相应的服务器以打开该服务器,依次双击“管理”、“SQL Server 代理”,然后单击“作业”。 |
3. | 在详细信息窗格中,右键单击“CopyTrackedMessages_<msgboxname>”,然后单击“属性”。 |
4. | 在“CopyTrackedMessages_<msgboxname> 属性”对话框中,单击“步骤”选项卡,单击“清除”,然后单击“编辑”。 |
5. | 在“步骤”选项卡的“命令”框中,根据需要编辑跟踪服务器和数据库名称参数,然后单击“确定”。 |
6. | 在详细信息窗格中,右键单击“CopyTrackedMessages_<msgboxname>”作业,然后单击“启用作业”。 在“启用”列中,状态将更改为“是”。消息将被复制到 Biztalk 跟踪 (BizTalkDTADb) 数据库中。 |
要点:
如果添加新的 MessageBox,将需要为新的 MessageBox 再执行一次此过程。
Biztalk Server 数据库中存储的数据量有可能增长得非常迅速,这与 Biztalk Server 方案的设计结构、BizTalk Server 方案所处理的消息数量和消息大小以及跟踪的配置方式都有关。使数据库大小维持在合理的水平,可提高处理效率并使系统中的数据量在任何给定时间都保持正常。这样能够获得高效而稳定的性能。此过程的自动化,可免去您手动维护数据库的工作。
维护运行状况良好的 Biztalk Server 环境的策略主要取决于您的特定方案和运行该方案的硬件。关键是监视 Biztalk 跟踪 (BizTalkDTADb) 数据库的增长速率和大小。跟踪数据库的一些表占据大量数据库空间,因此在运行时会影响性能。
配置同一个方案,却可以产生数量大不相同的跟踪数据,这取决于跟踪点的数量、用到的不同消息的数量、这些消息的大小以及所使用的消息正文跟踪的级别。以下是维护运行状况良好的环境需要监视的一些重要因素:
• | 跟踪点(如管道、业务流程和端口)的数量 |
---|---|
• | 跟踪的消息属性数 |
• | 每个传入消息的消息数 |
• | 消息大小 |
• | 通信速率(平均值和峰值) |
• | 消息正文跟踪配置 |
在涉及自动存档和清除数据时,请考虑需要保存在跟踪数据库中的实时数据量。您需要根据您的环境调整 DTA 清除和存档作业参数,以便在清除性能不会下降的前提下支持目标实时数据量。
DTA 清除和存档作业可在给定时间间隔内清除特定数量的数据。该作业的处理能力取决于运行的方案、当前数据库大小和硬件。为了获得稳定的环境,必须在传入跟踪数据的生成和清除之间取得平衡。在测试环境中,可通过改变数据的生存时段和清除作业的频率来找到平衡。在平衡状态下,系统将具有持续稳定的吞吐量。您的目标是在 Biztalk 跟踪数据库表大小导致持续显著的性能问题之前,具有足够的缓冲区。
清除时的性能对所有方案都是不可调整的。对于任何方案,跟踪数据量都可能不断增加。当以持续较低速率清除跟踪数据时,跟踪数据库的大小就会增大,这会使清除性能进一步恶化。
在负载不可承受的条件下,复制消息正文的速度也会降低,这可能在 MessageBox 数据库中形成积压。在极端条件下,日常消息正文复制和跟踪会产生消息正文不可用的存档,即使该消息包含相关的实例信息。通常,高负载阶段和低负载阶段交替进行,使落后的作业在低负载阶段得以弥补。
由于不断清除数据库并对存储的跟踪数据进行压缩,存档和清除 Biztalk 跟踪数据库能够大大降低发生负载不可承受情况的可能性。这些进程极大地减少了手动干预的需要。
本文档中所包含的信息仅代表了 Microsoft Corporation 在文档发布之日对所讨论的问题的观点。因为 Microsoft 必须对不断变化的市场情况做出响应,所以这些信息不应被解释为 Microsoft 的承诺,并且 Microsoft 也不保证这些信息在发布之日后的准确性。
本白皮书仅供参考。MICROSOFT 不对本文档中的信息做任何明示、暗示或法定的保证。
用户有责任遵守所有适用的版权法/著作权法。在不限制版权所辖权利的前提下,未经 Microsoft Corporation 的明确书面许可,无论出于何种目的,均不得以任何形式或借助任何手段(电子、机械、影印、录音或其他手段)复制或传播本文档中的任何部分,或将其存储于或引入检索系统。
Microsoft 可能拥有本文档中内容的专利、专利申请、商标、版权或其他知识产权。除非 Microsoft 提供了明确的书面许可协议,否则提供本文档并不意味着赋予您有关这些专利、商标、版权或其他知识产权的任何许可。
© 2006 Microsoft Corporation。保留所有权利。
Microsoft、MS-DOS、Windows、Windows Server、Windows Vista 和 Biztalk 是 Microsoft Corporation 在美国和/或其他国家/地区的注册商标或商标。
所有其他商标是其各自所有者的财产。