如何排查 DTS 和大小调整 MOM 2005 报告中的问题的数据库

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

本文内容

症状

在 MOM 2005 中安装 Microsoft 操作管理器 (MOM) 报告服务后,您遇到一个或多个以下症状:
  • MOM 报表是空的或不完整。
  • 当试图通过使用 MOM 报告控制台查看某些报告时您可能会收到以下错误消息:
    没有可用于此报表的数据。
  • OnePoint 数据库的大小突然增大。即使尚未更改的一个或多个托管的服务器或 MOM 配置组中的规则组的数据库增长。 OnePoint 数据库可能超出了推荐的 30 千兆字节 (GB) 限制。
  • 在 MOM 报表服务器上应用程序日志中出现以下事件:

    事件 ID 1001
    源: MOM.Datawarehousing.DTSPackageGenerator.exe
    描述: MOM 报告 DTS 作业未能成功完成

    事件 ID: 81
    事件源: DataTransformationServices
    说明: 下面的 DTS 包的执行失败:

事件 ID 1001 提供数据转换服务 (DTS) 包的失败原因的简要的说明。事件 ID 81 提供了有关错误的原因的详细信息。这两个事件的说明可能表明数据库具有足够的可用空间。一些典型的错误说明的示例如下所示:
  • 无法为对象 'SC_EventFact_Table' 数据库 'SystemCenterReporting 中分配空间,因为 PRIMARY 的文件组已满。
  • 为数据库 'SystemCenterReporting 日志文件已满。备份事务日志的数据库,以释放一些日志空间。
  • 无法为对象 '(SYSTEM table id:-548802855) 分配空间在数据库 TEMPDB,因为 DEFAULT 文件组已满。
MOM 报告 DTS 作业未能成功完成事件规则还可能会生成警报。此警报表示任务将报告数据从 OnePoint 数据库复制到报告数据库的已失败。

原因

如果将 DTS 包不能复制报告数据从 OnePoint 数据库到 MOM 报表服务器数据库,则会出现这些症状。 这会导致停止清理,OnePoint 数据库,它将继续增大,直到成功运行 DTS 作业。
当满足下列条件都为真时,DTS 包可能会失败:
  • DTS 包试图将大量数据复制到 MOM 报表服务器数据库。
  • MOM 报表服务器数据库具有足够的可用空间来完成复制任务。
  • SystemCenterDTSPackageTask 已计划的任务在 $ 任务计划中已被修改为不自动运行。
当试图将数据从 OnePoint 数据库复制 DTS 包时 MOM 报表服务器数据库或日志可能运行的可用空间不足。如果 MOM 服务器已经具有收集大量数据,可能会发生此行为。例如对于如果满足下列条件之一为真,就会发生此行为:
  • MOM 服务器已安装 MOM 报表服务之前很长时间运行。
  • 您在同一时间安装到 MOM 服务器组的多个代理。
  • 您添加一个新的规则,生成大量事件或大量的性能数据。
  • 您已安装了管理包中还增加了很多新的规则。
  • 您的 MOM 2005 Reorting 版本尚未升级到 Service Pack 1 (SP1)。

解决方案

若要解决此问题,增加 SystemCenterReporting 数据库和 SystemCenterReporting 日志的大小。 为此请 MOM 报表服务器上按照下列步骤操作:
  1. 单击 开始,指向 所有程序、 都指向 Microsoft SQL Server,然后单击 企业管理器
  2. 展开 Microsoft SQL server \ SQL Server 组 \ SQL Instance \ 数据库 容器。

    注意 SQL Instance 是包含 MOM 报表服务器数据库的命名的实例。
  3. 用鼠标右键单击 SystemCenterReporting,然后单击 属性
  4. 数据文件 选项卡上单击 空间分配 (MB) 值,然后键入较大的文件大小。
  5. 事务日志 选项卡上单击 空间分配 (MB) 值,然后键入较大的文件大小。
  6. 单击 确定 接受所做的更改。
  7. 请确保 Tempdb 未运行的磁盘空间不足。Tempdb 保存所有的临时表和临时存储的过程。Tempdb 将自动增加和减少为数据引擎执行的操作。如果 Tempdb 用完空间,SQLERROR 日志中会出现错误。您也可以设置数据文件和事务日志 文件自动增长,或您可以通过使用企业管理器或 $ TRANSACT-SQL 手动扩展文件。
    验证 Tempdb 的存储位置的硬盘上有足够的物理磁盘空间。如有必要,请将 Tempdb 移到更大的硬盘驱动器上。
之后您增加 SystemCenterReporting 数据库 SystemCenterReporting 日志和 Tempdb,手动重新运行 DTS 作业的大小。此步骤会将数据从 OnePoint 数据库复制到 SystemCenterReporting 数据库。若要手动运行 DTS 作业,请按照下列步骤操作。

验证 SystemCenterDTSPackageTask 已计划的任务在任务计划程序安排自动运行。如果是这样,请转到下一个过程。
  1. 使用 Windows 资源管理器查找 MOM reporting drive: \Program Files\Microsoft 系统中心 Reporting\Reporting 文件夹。
  2. 双击 MOM.Datawarehouse.DTSPackageGenerator.exe 文件。
注意在 $ 这是在控制面板中的计划任务中,您可以手动运行 SystemCenterDTSPackageTask 已计划的任务。

更多信息

移动减少使用 /latency 交换机或 /chunksize 交换机的数据量

我们建议您在较小的数据包中移动数据如果您有大量的同时移动的数据。这可以帮助避免在 SQL Server 超时。这还可以避免运行 SQL Server 的计算机上将太多的负载。

/latency 开关

MOM.Datawarehouse.DTSPackageGenerator.exe 文件支持允许您指定的是向 SystemCenterReporting 数据库传输数据的滞后时间参数。 使用延迟参数,可以确定有多少数据复制到 SystemCenterReporting 数据库。该滞后时间参数使用以下语法:
MOM.Datawarehousing.DTSPackageGenerator.exe /latency: number of days
我们建议您使用延迟参数,如果 DTS 作业失败多于三或四天。

若要查看已在最后一次 DTS 作业成功运行,检查 ReportingSettings 表 TimeDTSLastRan 值 OnePoint 数据库中。这将显示在协调通用时间 (格林威治标准时间)。

在此的示例已不在 30 天运行 DTS 作业。因此,您可以使用延迟开关值为 20,并且该作业将迁移的所有数据都超过 20 天到 MOM 报表数据库。下一次运行该作业,指定要迁移的任何内容的值 of10 超过 10 天。上次运行作业,删除该 / 延迟 从剩余的数据迁移 MOM.Datawarehousing.DTSPackageGenerator.exe 切换。通过执行此操作,可以将数据移动而急剧的系统。

注意 本示例假定 OnePoint 数据库中有 30 天的数据。
  1. 通过使用具有管理权限的帐户登录到 MOM 报表服务器。
  2. 单击 开始、 单击 运行,键入 cmd,然后单击 确定
  3. 命令提示符复制 SystemCenterDTSPackageTask,类型的命令行参数 / 滞后时间: 20,然后按 ENTER 键。

    20 表示在此示例中的 20 天。
  4. 通过使用较小的延迟时间,请重复步骤 3。
  5. 删除该 / 延迟 开关运行作业,则在最后一次。默认等待时间设置为 5 分钟。此位置超过 5 分钟的所有数据将被都移动。
注意您已将您的所有数据移到报表服务器后,您必须删除计划的作业上的延迟参数。

/chunksize 开关

新的大小参数已添加在 MOM 2005 SP1 中用于从命令行运行 DTS 作业时:
  • /chunksize: 分解以天为单位的大小。大容量数据将被传输的块区大小的增量。这允许有限的日志空间使用的大容量数据的传输。如果您指定一个值为 0 (零),这将不分解数据。(默认值 = 1 天)。
  • /maxchunks: 分块处于启用状态时要创建的数据块的最大数量。(默认值 = 10 个数据块)。

DTS 作业仍然失败,并且您会收到超时错误

DTS 作业仍然可能会失败,并且生成超时错误,如果将被复制到的数据量很大。

1001 事件、 事件 81,或已删除 / 无提示 开关一个 DTS 命令的输出的说明文本可能包含与以下类似的错误消息:
超时已过期。
要完成操作之前已超时或服务器没有响应。
执行由提供程序终止,因为已达到资源限制
如果在相应的 81 事件详细信息并不表示一条有关数据库或事务日志已满的错误,这是很可能是由于连接问题或网络问题。因此,使用下列方法之一:
  • 再次运行 DTS 作业。
  • 如果不成功 DTS 作业更改查询超时值。

可以从默认的 600 到 1200年秒或更多,增加超出远程查询时间或可能设置了远程查询超时时间为 0 (无限制) 以查看是否可以完成作业。若要将在远程查询超时时间,请按照下列步骤操作:

注意远程查询超时值应该作为报表数据库宿主 SQL Server 和承载 OnePoint 数据库 SQL Server 上更改。
  1. 打开 企业管理器 中,用鼠标右键单击报表数据库 SQL Server,然后单击 属性,连接选项卡。
  2. 在 SQL Server 属性页中单击 连接 选项卡。
  3. 在远程服务器连接部分键入 1200年查询超时值 框中。
  4. 重复步骤 1 至 3 OnePoint 数据库 SQL Server 上。
  5. 启动 DTS 作业。
    备注
    • 如果 DTS 作业仍然超时,重复步骤 1 至步骤 6。然而,增加在步骤 3 到 2400年条目 3600,或 0。
    • 问题解决后重新查询超时值设置为 600 或需要进行后续作业成功运行的任何值。
事件 ID 1001 可能包含类似于以下内容的信息:
Step StepInvokeInnerPackage failed. Step Error Source: Microsoft OLE DB Provider for SQL Server Step Error Description: (1:SC_Inner_DTS_Package) SubStep 'DTSStep_ExecuteSQLTask_SC_SampledNumericDataFact_View_1_Insert' failed with the following error: OLE DB provider 'SQLOLEDB' reported an error. Execution terminated by the provider because a resource limit was reached. (Microsoft OLE DB Provider for SQL Server (80040e14): OLE DB error trace [OLE/DB Provider 'SQLOLEDB' ICommandText::Execute returned 0x80040e31: Execution terminated by the provider because a resource limit was reached.].) (Microsoft OLE DB Provider for SQL Server (80040e14): [OLE/DB provider returned message: Timeout expired]) Execution was canceled by user. Step Error Code: -2147220441 Step Error Help File: Step Error Help Context ID:0

其他疑难解答信息

  • 检查应用程序和系统日志上正在执行 DTS 包在 SQL Server。
  • 查看上正在执行 DTS 包在 SQL Server SQL Server 日志。
  • 请确保在 OnePoint 和 SystemCenterReporting 数据库被设置为简单恢复模式。这是在数据库属性 选项 选项卡中配置的。
  • 要直接从程序中获取错误的信息输出,DTS 命令行从计划任务复制到命令提示符。

    例如对于是 Files\Microsoft 系统中心 Reporting\Reporting>MOM.Datawarehousing.DTSPackageGenerator.exe /silent /srcserver:servername /srcdb:OnePoint /dwserver:servername /dwdb:SystemCenterReporting /product:"Microsoft 操作管理器"

    删除该 /silent 切换。在命令提示符下运行命令。如果将失败作业,错误信息将在屏幕上的输出。这可以将复制到一个文本文件以供将来参考。
    DTS 作业成功显示没有输出和显示命令提示。

    如果没有更多的磁盘空间可用

    如果 SystemCenterReporting 数据库已达到的物理硬盘驱动器容量限制,将需要添加更多的磁盘空间,或数据库清理间隔将需要重新配置为更大。默认状态下,SystemCenterReporting 数据库中的数据保留期为 395 天。当安装了 MOM 2005 报告组件 SystemCenterReporting 数据库中创建存储的过程 p_updategroomdays。此存储的过程可以用于配置 SystemCenterReporting 数据库中的数据保留的天数。有关如何更改清理间隔的详细信息单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
    887016如何修改 SystemCenterReporting 数据库中 Microsoft 操作管理器 2005年中的数据保留的天数
有关详细的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
873235如何停止 SQL Server 数据库的意外增长的事务日志
317375事务日志意外增长或正在运行 SQL Server 的计算机上已满

属性

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