`
vanhukset
  • 浏览: 27335 次
  • 性别: Icon_minigender_1
  • 来自: 南京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

记录包执行的日志 转

 
阅读更多

MicrosoftSQL ServerIntegration Services 包括日志记录功能。这些功能公开了用于日志记录的运行时事件,支持各种日志记录提供程序,并且提供有关日志记录的常见请求信息。信息可以记录到文本文件、SQL Server Profiler、SQL Server 数据库的sysssislog 表、Windows 事件日志以及 XML 文件中。有关详细信息,请参阅 Integration Services 日志提供程序

可以通过使用 SSIS 设计器(该设计器是 Integration Services 提供的用于创建包的图形工具)将包配置为使用日志记录,或以编程方式进行配置。有关如何启用包及其容器和任务以便进行日志记录的详细信息,请参阅在包中实现日志记录

在使用 dtexec 命令提示实用工具运行包时,还可以包括日志记录。有关支持日志记录的命令提示参数的详细信息,请参阅 dtexec 实用工具(SSIS 工具)

在包完成运行后,您可以查看包日志中的运行时信息。

下表介绍了 Integration Services 日志提供程序要向其写入信息的日志的位置。

日志提供程序

位置

文本文件

日志提供程序使用的文件连接管理器指定此文本文件的路径。

SQL Server Profiler

日志提供程序使用的文件连接管理器指定 SQL Server Profiler 所使用的文件的路径。

Windows 事件日志

Windows 事件查看器中的应用程序日志包含 Integration Services 日志信息。

SQL Server

日志提供程序使用的 OLE DB 连接管理器指定包含存储日志项的 sysssislog 表的 SQL Server 数据库。

XML 文件

日志提供程序使用的文件连接管理器指定 XML 文件的路径。



Integration Services 包将各种事件消息记入 Windows 应用程序事件日志。包会在包启动时、包停止时和特定问题出现时记录这些消息。

本主题提供有关包记入应用程序事件日志的常见事件消息的信息。默认情况下,即使未对包启用日志记录,包也会记录其中某些消息。但对于其他消息,只有对包启用了日志记录,包才会记录这些消息。无论包是在默认情况下还是在启用日志记录后记录这些消息,消息的事件源都是 SQLISPackage。

有关如何运行 Integration Services 包的常规信息,请参阅运行包

有关如何对正在运行的包进行故障排除的信息,请参阅包执行故障排除

运行 Integration Services 包时,包会通常会记录有关包的进度和状态的各种消息。下表列出了这些消息。

注意注意

即使未对包启用日志记录,包也会记录下表中的消息。

事件 ID

符号名称

文本

说明

12288

DTS_MSG_PACKAGESTART

包“”已开始运行。

包已开始运行。

12289

DTS_MSG_PACKAGESUCCESS

包“”已成功完成。

包已运行成功且不再运行。

12290

DTS_MSG_PACKAGECANCEL

包“%1!s!”已取消。

包已取消,因此不再运行。

12291

DTS_MSG_PACKAGEFAILURE

包“”已失败。

包无法成功运行,已停止运行。

默认情况下,在全新安装中,Integration Services 配置为不将有关包运行的某些事件记录到应用程序事件日志中。使用 SQL Server 2008 的数据收集器功能时,此设置可防止生成太多事件日志项。未记录的事件包括 EventID 12288“包已启动”和 EventID 12289“包已成功完成”。若要将这些事件记录到应用程序事件日志中,请打开注册表以进行编辑。然后在注册表中,找到 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\100\SSIS 节点,并将 LogPackageExecutionToEventLog 设置的 DWORD 值从 0 更改为 1。不过,在升级安装中,Integration Services 配置为记录这两个事件。若要禁用记录功能,请将 LogPackageExecutionToEventLog 设置的值从 1 更改为 0。

如果已对包启用日志记录,应用程序事件日志将是 Integration Services 包中可选的日志记录功能所支持的目标之一。有关详细信息,请参阅记录包执行的日志

如果已对包启用日志记录而且日志位置为应用程序事件日志,则包将记录与以下信息相关的项:

  • 有关包运行时所处的阶段的消息。

  • 有关包运行时发生的特定事件的消息。

有关包执行阶段的消息

事件 ID

符号名称

文本

说明

12544

DTS_MSG_EVENTLOGENTRY

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

将包日志记录配置为记入应用程序事件日志时,各种消息都会使用这种通用格式。

12556

DTS_MSG_EVENTLOGENTRY_PACKAGESTART

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

包已启动。

12547

DTS_MSG_EVENTLOGENTRY_PREVALIDATE

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

对象验证即将开始。

12548

DTS_MSG_EVENTLOGENTRY_POSTVALIDATE

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

对象验证已完成。

12552

DTS_MSG_EVENTLOGENTRY_PROGRESS

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

此通用消息用于报告包的进度。

12546

DTS_MSG_EVENTLOGENTRY_POSTEXECUTE

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

对象已完成其工作。

12557

DTS_MSG_EVENTLOGENTRY_PACKAGEEND

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

包已经完成运行。

有关发生的事件的消息

下表仅列出属于事件结果的部分消息。有关 Integration Services 使用的错误、警告和信息性消息的更全面的列表,请参阅 SSIS 错误和消息参考

事件 ID

符号名称

文本

说明

12251

DTS_MSG_EVENTLOGENTRY_TASKFAILED

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

任务失败。

12250

DTS_MSG_EVENTLOGENTRY_ERROR

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

此消息用于报告产生了一个错误。

12249

DTS_MSG_EVENTLOGENTRY_WARNING

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

此消息用于报告产生了一个警告。

12258

DTS_MSG_EVENTLOGENTRY_INFORMATION

事件名称: %1%r 消息: %9%r 操作员: %2%r 源名称: %3%r 源 ID: %4%r 执行 ID: %5%r 开始时间: %6%r 结束时间: %7%r 数据代码: %8

此消息用于报告与错误或警告无关的信息。





了解由 Integration Services 服务记录的事件

Integration Services 服务将各种消息记入 Windows 应用程序事件日志。该服务会在服务启动时、服务停止时和特定问题出现时记录这些消息。

本主题提供有关该服务记入应用程序事件日志的常见事件消息的信息。本主题中说明的 Integration Services 服务记录的所有消息均以 SQLISService 为事件源。

有关 Integration Services 服务的常规信息,请参阅 管理 Integration Services

有关如何对 Integration Services 服务进行故障排除的信息,请参阅 Integration Services 服务故障排除

当您选择安装 Integration Services 时,系统将安装并启动 Integration Services 服务,且其启动类型将设置为自动。

事件 ID

符号名称

文本

说明

256

DTS_MSG_SERVER_STARTING

正在启动 MicrosoftSSIS 服务。

服务即将启动。

257

DTS_MSG_SERVER_STARTED

MicrosoftSSIS 服务已启动。

服务已启动。

260

DTS_MSG_SERVER_START_FAILED

MicrosoftSSIS 服务启动失败。%n错误: %1

服务未能启动。服务未能启动可能是由于安装已损坏或服务帐户不适当。

258

DTS_MSG_SERVER_STOPPING

正在停止 MicrosoftSSIS 服务。%n%n退出时停止所有正在运行的包: %1

服务正在停止,如果将服务配置为执行此操作,则所有正在运行的包都会停止。可以在配置文件中设置 True 或 False 值来决定服务是否在自身停止时停止正在运行的包。此事件的消息包括这项设置的值。

259

DTS_MSG_SERVER_STOPPED

MicrosoftSSIS 服务已停止。%n服务器版本 %1

服务已停止。

Integration Services 服务的设置存储在一个 XML 文件中,您可以修改该文件。有关详细信息,请参阅配置 Integration Services (SSIS) 服务

事件 ID

符号名称

文本

说明

274

DTS_MSG_SERVER_MISSING_CONFIG_REG

MicrosoftSSIS 服务: %n指定配置文件的注册表设置不存在。%n正尝试加载默认的配置文件。

包含配置文件路径的注册表项不存在或为空。

272

DTS_MSG_SERVER_MISSING_CONFIG

MicrosoftSSIS 服务配置文件不存在。%n正在使用默认设置加载。

在指定位置不存在配置文件自身。

273

DTS_MSG_SERVER_BAD_CONFIG

MicrosoftSSIS 服务配置文件不正确。%n读取配置文件 %1 时出错%n%n正在使用默认设置加载服务器。

无法读取配置文件或配置文件无效。此错误可能是由文件中的 XML 语法错误引起的。

事件 ID

符号名称

文本

说明

336

DTS_MSG_SERVER_STOPPING_PACKAGE

MicrosoftSSIS 服务: 正在停止运行中的包。%n包实例 ID: %1%n包 ID: %2%n包名称: %3%n包说明: %4%n包

服务正在尝试停止运行中的包。可以在 Management Studio 中监视和停止正在运行的包。有关如何在 Management Studio 中管理包的信息,请参阅管理包




在包中实现日志记录

Integration Services 包括日志记录功能,该功能可以在发生运行时事件时写入日志项,还可以写入自定义消息。

Integration Services 支持一组不同的日志提供程序,并且允许您创建自定义日志提供程序。Integration Services 日志提供程序可以将日志项写入文本文件、SQL Server Profiler、SQL Server、Windows 事件日志或 XML 文件。

日志与包关联,而且可以在包级进行配置。包中的每项任务或容器都可以将信息记录到任何包日志中。即使不对包本身启用日志记录,也可以对包中的任务和容器启用日志记录。例如,您可以对执行 SQL 任务启用日志记录,而不对父包启用日志记录。包、容器或任务都可以将信息写入多个日志中。可以只在包上启用日志记录,也可以选择在包所包括的任何单个任务或容器上启用日志记录。

为了自定义事件或自定义消息的日志记录,Integration Services 提供了要包括在日志项中的常用记录信息的架构。Integration Services 日志架构定义您可以记录的信息。您可以从日志架构中为每个日志项选择元素。

包及其容器和任务不必记录相同的信息,同一包或容器内的任务可以记录不同的信息。例如,包可以在包启动时记录操作员信息,一个任务可以记录任务失败的原因,而另一个任务可以在出现错误时记录信息。如果包及其容器和任务使用多个日志,则相同信息会写入所有日志中。

通过指定要记录的事件以及要为每个事件记录的信息,您可以选择满足自己需求的日志记录级别。您可能会发现一些事件提供的信息更为有用。例如,对于 PreExecute 事件,您希望仅记录计算机名和操作员姓名,而对于 Error 事件,您希望记录所有可用的信息。

若要防止日志文件占用大量的磁盘空间或者避免过多的日志记录(这可能会降低性能),可以通过选择记录特定的事件和信息项来限制日志记录。例如,您可以将日志配置为仅捕获每个错误的日期和计算机名。

在 SSIS 设计器中,您可以使用“配置 SSIS 日志”对话框来定义日志记录选项。

下表介绍了日志架构中的元素:

元素

说明

Computer

发生日志事件的计算机的名称。

Operator

启动包的用户的标识。

SourceName

发生日志事件的容器或任务的名称。

SourceID

发生日志事件的包、 For 循环容器、Foreach 循环容器、序列容器或任务的唯一标识符。

ExecutionID

包执行实例的 GUID。

注意注意
运行单个包可能会创建具有不同 ExecutionID 元素值的日志项。例如,当在 BI Development Studio 中运行包时,验证阶段可能会创建 ExecutionID 元素与 BI Development Studio 对应的日志项。但是,执行阶段可能会创建 ExecutionID 元素与 dtshost.exe 对应的日志项。再比如,当运行包含“执行包”任务的包时,这些任务中的每个任务都会运行子包。这些子包创建的日志项所具有的 ExecutionID 元素可能不同于父包创建的日志项。

MessageText

与日志项关联的消息。

DataBytes

日志项特定的字节数组。此字段的意义因日志项的不同而不同。

下表介绍日志架构中三个附加元素,这些元素在“配置 SSIS 日志”对话框的“详细信息”选项卡中不可用。

元素

说明

StartTime

容器或任务开始运行的时间。

EndTime

容器或任务停止运行的时间。

DataCode

是一个通常包含 DTSExecResult 枚举值的可选整数值,它指示运行该容器或任务的结果:

  • 0 – 成功

  • 1 – 失败

  • 2 – 已完成

  • 3 – 已取消

Integration Services 支持预定义事件的日志项,并提供了可用于很多 Integration Services 对象的自定义日志项。SSIS 设计器中的“配置 SSIS 日志”对话框列出了这些事件和自定义日志项。

下表描述了可以在发生运行时事件时启用日志项写入功能的预定义事件。这些日志项将应用到可执行文件、包以及包中的任务和容器。日志项的名称与引发并导致写入日志项的运行时事件的名称相同。

事件

说明

OnError

出现错误时写入日志项。

OnExecStatusChanged

在可执行文件的执行状态更改时写入日志项。

OnInformation

在验证和执行可执行文件的过程中写入报告信息的日志项。

OnPostExecute

在可执行文件运行完成后立即写入日志项。

OnPostValidate

在可执行文件的验证完成时写入日志项。

OnPreExecute

在可执行文件即将运行前写入日志项。

OnPreValidate

可执行文件的验证开始时写入日志项。

OnProgress

在可执行文件的进度可度量时写入日志项。

OnQueryCancel

在任务处理过程中可以取消执行的任何时刻写入日志项。

OnTaskFailed

在任务失败时写入日志项。

OnVariableValueChanged

在变量的值更改时写入日志项。

OnWarning

在出现警告时写入日志项。

PipelineComponentTime

对于每个数据流组件,为验证和执行的每个阶段写入日志项。该日志条目为每个阶段指定处理时间。

Diagnostic

写入提供诊断信息的日志项。

例如,您可以在每次调用外部数据访问接口之前和之后记录消息。有关详细信息,请参阅包执行故障排除

包和很多任务都有可以启用日志记录功能的自定义日志项。例如,发送邮件任务提供了 SendMailTaskBegin 自定义日志项,该日志项在发送邮件任务开始运行但发送电子邮件消息之前记录信息。有关详细信息,请参阅日志记录的自定义消息

日志数据包括日志项所属的包的名称和 GUID。如果通过复制现有包而创建了新的包,则现有包的名称和 GUID 也会被复制。结果,可能有两个包具有相同的 GUID 和名称,这将使您难以区分日志数据中的包。

若要消除这种不明确性,应当更新新包的名称和 GUID。在 Business Intelligence Development Studio 中,可以在 ID 属性中重新生成 GUID,并在“属性”窗口中更新 Name 属性的值。还可以通过编程或使用 dtutil 命令提示符工具来更改 GUID 和名称。有关详细信息,请参阅设置包属性dtutil 实用工具(SSIS 工具)

通常,任务以及 For 循环、Foreach 循环和序列容器的日志记录选项与包或父容器的日志记录选项匹配。在这种情况下,您可以将它们配置为继承其父容器的日志记录选项。例如,在包括执行 SQL 任务的 For 循环容器中,执行 SQL 任务可以使用已对 For 循环容器设置的日志记录选项。若要使用父日志记录选项,可以将容器的 LoggingMode 属性设置为 UseParentSetting。可以在 Business Intelligence Development Studio 的“属性”窗口中设置此属性,也可以通过 SSIS 设计器中的“配置 SSIS 日志”对话框设置此属性。

“配置 SSIS 日志”对话框中,还可以创建经常使用的日志记录配置并将其保存为模板,然后在多个包中使用这些模板。这样便于对多个包应用一致的日志记录策略,以及通过更新并应用模板来修改包的日志设置。这些模板存储为 XML 文件。

使用“配置 SSIS 日志”对话框配置日志记录

  1. 为包及其任务启用日志记录。可以在包级、容器级以及任务级进行日志记录。可以为包、容器和任务指定不同的日志。

  2. 选择日志提供程序并为包添加日志。可以仅在包级创建日志,任务或容器必须使用为包创建的日志之一。每个日志都与下列某个日志提供程序关联:文本文件、SQL Server Profiler、SQL Server、Windows 事件日志或 XML 文件。有关详细信息,请参阅如何在包中启用日志记录

  3. 选择要在日志中捕获的事件以及每个事件的日志架构信息。有关详细信息,请参阅如何使用保存的配置文件配置日志记录

在包开发期间查看日志项


分享到:
评论

相关推荐

    oracle记录存储过程日志的方法

    本包用于记录存储过程里面的日志,将日志信息写入日志表(mylog)。可以记录日志时间、过程名称、过程里面记录日志的行数、参数值。如果在异常处理部分记录日志,还可以记录异常代码、异常原因、异常产生的行数。 本人...

    log4pb, pb的日志组件, 后台线程记录日志

    日志是异步记录的(每个记录方式开了个线程在后台负责记录处理),大大提高应用程序性能 // 8. 功能可以通过数据库表选择配置(如,多少种记录方式,各线程工作频率) // 9. 日志的数据库记录方式,可以配置缓区大小,...

    springboot 日志记录插件,开箱即用,包含示例

    1、提供@RecordLog 注解可用来标准需要记录日志的方法上, 2、实现WushigLogSaverProcesser接口,默认需要实现它的saveLog方法,此方法可以获取到当前正在调用的方法的 基本信息,这是线程安全的,并且本插件使用了...

    SqlServer日志清除工具

     本软件可以实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作。  本软件定时运行时采用伪密码安全层,有效的保护您的SqlServer密码不被"看星星"等软件的破解。  本软件包含完善的...

    sql清除日志工具3.0

     本软件可以实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作。  本软件定时运行时采用伪密码安全层,有效的保护您的SqlServer密码不被"看星星"等软件的破解。  本软件包含完善的...

    SqlServer 日志清除专家 v2.6

    使您再也不用担心数据库日志文件超过几百兆或上GB级而烦恼,使您的Sql Server数据库既小巧又精练,实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作,定时运行时采用伪密码安全层,...

    windows登录日志统一记录

    通过批处理查询当前3389端口筛选内容到文本,再通过任务计划通过事件触发马上执行,每台服务器都会产生一个ip独立的文件,代码包含登录和退出的登记,贼好用

    glog:Go的分级执行日志

    Go的分级执行日志。 这是以开源C ++包的方式高效地执行Go级别日志的纯Go实现。 通过将方法绑定到布尔值,可以使用日志包而无需支付评估日志参数的费用。 通过-vmodule标志,该软件包还提供了对文件级别日志记录的...

    WAF培训资料9-日志报表.pptx

    系统管理员亦可执行日志配置、导出日志、清空日志等操作对日志模块进行配置管理。 报表模块:系统对日志模块生产的日志进行自动统计分析,生成不同类型的统计报表,如按时段统计、按服务统计、按攻击统计等。系统...

    使用Log4j进行日志操作

    在强调可重用组件开发的今天,除了自己从头到尾开发一个可重用的日志操作类外,Apache为我们提供了一个强有力的日志操作包-Log4j。 Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的...

    SqlServer日志清除专家

     本软件可以实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作。  本软件定时运行时采用伪密码安全层,有效的保护您的SqlServer密码不被"看星星"等软件的破解。  本软件...

    mavenproject:Java中的基础Maven项目,具有日志记录(通过SLF4jj进行log4)和可执行jar打包

    Maven项目 Java中的基础Maven项目,带有日志记录(通过SLF4J通过log4j)和可执行jar打包 记录都已完成到STDOUT和文件(/logs/test.log)。 有关配置,请参见/src/main/resources/log4j.properties

    logr:一个R包来写日志

    R已有多个日志记录程序包。为什么还要创建另一个程序包? 因为其他日志记录软件包都具有一些共同点:它们是为R软件包开发人员构建的。 logr软件包的不同之处在于它是为普通R用户构建的:统计学家,分析师,研究...

    log4j将记录日志保存到数据库

     1、创建日志表 要把日志持久化,必须在数据库中创建一张用来存储日志信息的表,表内字段为日志 的一个主要属性包括:操作类,执行方法,打印时间,日志级别,日志内容。 CREATE TABLE RESLOG (LOGID VARCHAR2(20)...

    SQL Server日志清除专家

     本软件可以实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作。  本软件定时运行时采用伪密码安全层,有效的保护您的SqlServer密码不被"看星星"等软件的破解。  本软件包含完善的...

    SQLServer日志清除专家

     本软件可以实时运行,定时安全清除SqlServer的日志,自定义按每月执行或是按每天执行清除操作。  本软件定时运行时采用伪密码安全层,有效的保护您的SqlServer密码不被"看星星"等软件的破解。  本软件包含完善的...

    .net日志组件NLog.zip

    记录跟踪信息的目标(target)可以为如下几种形式:文件文本控制台Email数据库网络中的其它计算机(通过TCP或UDP)基于MSMQ的消息队列Windows系统日志其他形式,请参考http://www.nlog-project.org/targets.html除此...

    log4jdbc监控sql及执行时间

    1、在应用中jdbc url最前面添加jdbc:log4;比如oracle的url就变成了jdbc:log4jdbc:oracle:thin:@x.x.x.x:1521:dbname; 2、在日志系统中设置jdbc....zip文件里已经包括所有依赖包,除了数据库驱动。 祝大家顺利。

    ansilog:监控和维护集中式 Ansible 剧本执行的历史记录

    监控、管理和维护集中式 Ansible 剧本执行的历史记录。 技术栈 名称 描述 配置 v3.4.x 快速的 PHP 框架 无逻辑模板 命令行 PHP 任务 JS框架 Backbone.js 扩展 AMD 模块 , BDD 测试 PHP依赖管理器 节点包管理器...

    鲁::鲁ck的日志记录。 C ++的低延迟,高吞吐量,异步日志记录库

    之所以创建它,是因为我需要执行大量的诊断日志记录而不必担心性能。 拥有能够很快丢弃日志消息的功能。 鲁ck的拥有保留所有内容的能力,而不必担心性能影响。 筛选可以并且应该等到您要读取日志或需要清理磁盘空间...

Global site tag (gtag.js) - Google Analytics