• 在SSIS包中使用 Checkpoint从失败处重新启动包


    使用SSISETL的过程中会遇到各种各样的错误,对于一些大数据量的Job失败以后我们不希望重新运行,因为重新运行的时间开销是非常大的,我们只希望从失败的部分开始运行,这样可以省去很多的时间。

     

    SSIS提供了Checkpoints的功能,可以捕获检查点文件中的重新启动点。失败的容器类型以及功能(例如事务)的实现都会影响在检查点文件中所记录的重新启动点。检查点文件中还捕获变量的当前值

     

    创建SSIS的时候需要制定 checkpoint文件目录,checkpoint的信息会被保存到这个xml文件。当package运行的时候,SSIS执行下面的步骤执行checkpoints

    1.     创建xml文件

    2.     记录当前用户定义的变量

    3.     记录每一个成功的步骤

    4.     根据情况选择执行下面的一个选项

    A.     package由于错误停止,保存checkpoint文件

    B.     当整个Package执行成功时删除checkpoint文件

     

    下面我创建了两个Task,一个data flow紧接着执行一段SQL语句:

     

     

    配置Checkpoints,有三个选项需要配置CheckpointFileNameCheckpointUsageSaveCheckpoints

     

     

    将使用Checkpoints的每个Task属性FailPackageOnFailure设置为设置为True

     

     

    现在我们测试失败的状况,我们可以更改第二个TaskForceExecutionResults选项为Failure,这样可以模拟Task失败。

     

    执行一次,失败,在目录下面可以找到checkpoint的文件:

     

     

    将第二个TaskForceExecutionResults值修改为None,重新执行

    可以看到从上次错误的地方执行,只有第二个task执行成功。

     

     

    主意事项:

    不为 For 循环和 Foreach 循环容器保存检查点数据。当重新启动包时,会再次运行 For 循环和 Foreach 循环容器及其子容器。如果循环中的子容器已成功运行,则不会将其记录在检查点文件中,而是重新运行子容器

     

    更多信息参考

    通过使用检查点重新启动包

    ImplementingCheckpoints in an SSIS Package

    Faking successin SSIS

  • 相关阅读:
    Java中容器的两种初始化方式比较
    java8之stream
    java8之lambda表达式入门
    java8之lambda表达式(1)-基本语法
    java中Comparable和Comparator两种比较器的区别
    将博客搬至CSDN
    vsphere6.5 创建数据中心、集群和添加主机
    VMware-VCSA-6.5安装过程
    docker--数据卷与数据卷容器
    docker私有库搭建过程(Registry)
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3209165.html
Copyright © 2020-2023  润新知