博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
在SSIS包中使用 Checkpoint从失败处重新启动包
阅读量:6824 次
发布时间:2019-06-26

本文共 903 字,大约阅读时间需要 3 分钟。

使用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

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

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

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

 

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

主意事项:

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

更多信息参考 

本文转自 lzf328 51CTO博客,原文链接:

http://blog.51cto.com/lzf328/1255415

转载地址:http://fvlzl.baihongyu.com/

你可能感兴趣的文章
HTTPS到底是个什么鬼?
查看>>
Yii框架中ActiveRecord使用Relations
查看>>
leetcode 55.跳跃游戏
查看>>
flexPaper +swftools实现文档在线阅读
查看>>
分形树的绘制
查看>>
获取父页面标签对象,获取当前标签div高度
查看>>
分享10条PHP性能优化的小技巧,帮助你更好的用PHP开发:
查看>>
loadrunner请求中有汉字 如何编码
查看>>
java数据结构 • 面向对象 • 异常 • 随机数·时间
查看>>
springmvc 实现pc端手机端适配(同一个请求根据不同客户端展示不同界面)
查看>>
BTree和B+Tree详解
查看>>
VS2005工程迁移到Eclipse CDT
查看>>
Linux高端内存映射(上)【转】
查看>>
usb_control_msg参数详解【转】
查看>>
8086汇编指令速查手册
查看>>
Node.js安装及环境配置
查看>>
j2EE web.xml中的url-pattern的映射规则
查看>>
华盛顿大学的埃德 拉佐斯卡在一次讲座中提到了一个让人吃惊的数字,如果一个晶体管对应一粒大米,在2004年,每年全球晶体管的生产数量和大米的产量是一样的。...
查看>>
我曾对员工讲,我们做阿里云计算平台,要努力做到让创业者发自内心地相信,在阿里云计算平台上创新、创业,照样可以做成上市公司,甚至会比阿里巴巴还要厉害。有了这样的信任度,云计算才能真正做起来。...
查看>>
(转)前端面试题
查看>>