开篇介绍
在作业中,每天要执行的包来更新展示界面的报表数据,不可避免会出现包因为各种情况而导致执行失败的情况,ssis2012有自带的包执行情况的日志记录。是不是觉得很赞。其实包执行的日志记录管理可以根据实际需求设计的更详细,方便点。原理跟ssis2012日志记录配置是一样的,触发OnError,OnPostExcute等事件来做相应的处理。自己设计日志记录主要在事件处理程序里面做相应逻辑处理,这里就不介绍了。介绍下ssis2012自带的日志记录设置。
步骤一:
在项目中,所有的包可以放在一个总包里面执行,配置总包RunAll.dtsx的日志记录就行了。如图所示:
在RunAll.dtsx控制流中,右击鼠标,选择日志
左边一栏显示的是要配置的包,可以根据需要勾选。
在提供程序类型下拉框中有五种选项,看表面意思应该看的懂。
用于文本文件的ssis日志提供程序
用于SQL Server的ssis日志提供程序
用于 SQL Server Profiler的ssis日志提供程序
用于Windows 事件日志的ssis日志提供程序
用于XML文件的ssis日志提供程序
我常用的是第二种,“用于SQL Server的ssis日志提供程序”,存储数据库表中,做成日志类型的报表,以便即时管理包的执行。
步骤二:
选中“用于SQL Server的ssis日志提供程序”后点击添加,还要配置日志写入目标,配置列下新建一个连接管理器Destination,用来存放日志信息。如图所示:
详细信息栏配置要触发的事件,我记录OnError 和OnPostExcute事件包的信息。高级,可以根据需要选择需要字段的信息。配置完确定即可。
步骤三:
是不是很疑问,配在哪呢?ssis日志表呢?在之前连接管理器对应的数据库栏下的系统表里,注意包执行后才会自动生成日志表。
在数据查询管理器,查询结果:包执行触发OnError ,OnPostExcute状态信息。
总结:ssis日志配置相对来说比较简单方便。其实这种管理方式也有弊端,如果包上百个以上,这种方式就很难处理了,一百个包放在一个包执行,想想就知道太乱了,而且修改这个总包时,打开速度也会比较慢。所以很多公司都是自己设计的日志系统。日志系统的设计要考虑长远一点,除了结合实际情况以外也要方便以后扩展延伸。
PS:以共享IT资源,畅游IT为核心组成的海贼团,每周不定期推送更新完整的项目文章详解及经验分享,欢迎加入IT海贼船
黑胡子:“人的梦想,永远不会结束!”
网友评论