SSIS包记录32位与64位还是调试?

时间:2013-08-11 17:53:32

标签: sql-server logging ssis

我有一个SSIS包,我在其中设置了包登录

的OnError OnInformation OnPre-执行 OnPostExecute OnBufferSizeTuning

当我在VS中的(64位)服务器上执行此包时,它将写入所有信息,包括从文件处理多少行以及“预执行阶段开始”,但是如果我执行包从同一服务器上的SQL Server代理作业的文件存储中,程序包只写入一行“文件处理已启动”。

我环顾四周,但无法找到任何关于调试与作业或32位与64位不同的软件包日志记录。它是完全相同的包 - 任何想法为什么包日志记录会有所不同?

2 个答案:

答案 0 :(得分:1)

我认为你混淆了两种不同的日志选项。

您可以在SSIS包中建立事件记录,并将该输出定向到表,文件,事件日志等。

如果没有编写自己的实用程序来运行SSIS包,dtexec就是将SSIS的包XML转换为实际命令。 dtexec侦听输出到BIDS / SSDT / VS中的屏幕的各种事件和管道,或者将其记录在作业步骤历史记录窗口中。 Visual Studio运行的默认值与命令行或SQL代理调用不同。

您要设置的参数是/Cons ConsoleLog或/Rep ReportLog。最有可能是ReportLog。

SQL Agent的默认执行将类似于/REPORTING E,这只会生成您记录的错误(根据BOL)。您可以从代理作业中剥离该作业,然后将其默认为指定的

  

如果未指定/ Reporting选项,则默认级别为E.   (错误),W(警告)和P(进度)。

或明确提供您想要的报告事件。

在SQL代理作业步骤中,它最终可能看起来像这样。开头是不同的,因为它指向文件系统上的包,而您的将在MSDB中。

enter image description here

单击“手动编辑命令行”选项,然后将/ REPORTING弯曲到您的意愿

答案 1 :(得分:0)

在将其设置为作为SQL Server作业运行之前,请确保已为程序包选择了日志记录提供程序。 请查看此文章作为问题的可能解决方案:How to Check SSIS Package Job Results