SSIS可靠性和扩展性—简介

简介: 可靠性和扩展性是所有系统的最终目标之一,他们两个看起来有些对立,不过通常来讲他们又有相互的联系。错误和造成错误的条件是可靠性最明显的威胁。SSIS提供了解决这些情况的优雅的方法。这个章节中要关注的特性是错误输出和检验点,使用他们来实现可靠性,他们也可以保证包的执行性能和扩展性。

可靠性和扩展性是所有系统的最终目标之一,他们两个看起来有些对立,不过通常来讲他们又有相互的联系。错误和造成错误的条件是可靠性最明显的威胁。SSIS提供了解决这些情况的优雅的方法。这个章节中要关注的特性是错误输出和检验点,使用他们来实现可靠性,他们也可以保证包的执行性能和扩展性。

  

重新启动

一种经常遇到的情况,一个需要整夜执行的包执行失败了,需要重新执行它。如果其中一个步骤非常的耗费资源和时间,重新执行它是一件痛苦的事情。在DTS中没有类似“断点续传”的功能。重新执行一个失败的包是很容易再次出错的。由不同的策略在解决这些问问题,但是需要清楚DTS模型的工作原理,大多数DBA都没有这样的工作经验。


由于这些因素,SQL Server 2008中的检验点功能是非常难得的方法,在SSIS中检验点是包的重新启动的基础,它将包的执行状态写入到一个文件中。这些状态信息包括那个task已经执行过,那个task执行出错了。要正确地设置检验点文件,有三个包 属性和一个task属性需要设置:

  • CheckpointFilename:这个属性必须设置,检验点文件的后缀是.chk
  • CheckpointUsage:  是否使用检验点,有三种值来描述如何使用检验点
      Never: 不使用检验文件
      If Exists:  如果设置了CheckpointFilename属性,包将按照检验文件重新执行
      Always:  总是使用检验文件重新执行,如果没有指定文件将报错
  • SaveCheckpoints: 这是一个布尔值指定是否写入检验点,很明显这个值应该重视设置为true
  • FailPackageOnFailure:  这个属性是在task中设置的,当要将一个task设置为重新执行的检验点,如果这个属性没有被设置为true,执行失败时信息不会被写入到检验点文件中,下次执行的时候将会从第一个task开始执行

注意:SSIS 包被细分成Control Flow和 Data Flow,只能在Control Flow中设置检验点而不能在Data flow中设置。如果在包的执行过程中没有出现错误,检验点文件也不会产生。检验点文件包含所有重新启动包的信息。

  

简单的Control Flow

我们首先从一个简单的例子开始如图1三个ExecuteSQL。

图1

  

在第二个task中我们设置一个错误,select  1/0,如图2

图2

  

我们假设第一个task是一个耗时耗力的任务,为了它在执行完之后不会被执行第2次,将检验点设置在这个任务上,首先设置包的属性如图3

图3

  

现在设置第二个task的属性如图4

图4

  

执行包,它在第二个task处失败如图5

图5

  

在这里如果这个是在DTS环境中我们修改package,并且做一些额外的工作保证task 1不会被再次执行,但是我们是用SSIS来创建的这个包,依赖检验点来实现这个。在错误输出重我们看到一些内容被写倒检验点文件中,如下:

SSIS package "CheckPoint.dtsx" starting.

Information: 0x40016045 at CheckPoint: The package will be saving checkpoints to file "D:\MyProject\IntegrationService\ProSSISChapter5\checkpoint\chkSimple3ExecuteSqltask.chk" during execution. The package is configured to save checkpoints.

Information: 0x40016049 at CheckPoint: Checkpoint file "D:\MyProject\IntegrationService\ProSSISChapter5\checkpoint\chkSimple3ExecuteSqltask.chk" update starting.

Information: 0x40016047 at 1: Checkpoint file "D:\MyProject\IntegrationService\ProSSISChapter5\checkpoint\chkSimple3ExecuteSqltask.chk" was updated to record completion of this container.

Error: 0xC002F210 at 2, Execute SQL Task: Executing the query "select 1/0" failed with the following error: "Divide by zero error encountered.". Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.

Task failed: 2

Warning: 0x80014058 at 2: This task or container has failed, but because FailPackageOnFailure property is FALSE, the package will continue. This warning is posted when the SaveCheckpoints property of the package is set to TRUE and the task or container fails.

Information: 0x40016049 at CheckPoint: Checkpoint file "D:\MyProject\IntegrationService\ProSSISChapter5\checkpoint\chkSimple3ExecuteSqltask.chk" update starting.

Information: 0x40016047 at 2: Checkpoint file "D:\MyProject\IntegrationService\ProSSISChapter5\checkpoint\chkSimple3ExecuteSqltask.chk" was updated to record completion of this container.

SSIS package "CheckPoint.dtsx" finished: Failure.

 

在文件目录中我们也可以看到这个文件如图6

图6

  

现在我们修正task2种的错误:select 1/2,再次执行这个包结果如图7:

图7

  

Task1被忽略,从task2开始执行。这里注意task2的FailPackageOnFailure属性必须设置成true,否则的话检验文件不会被写入,再次执行的时候还是会从task1开始执行。我们来试一试如图8

图8

  

执行包,如图9它将仍然从task1开始执行,这不是我们希望的。

图9

  

这个例子简单地说明了检验点的工作过程,在实际的生产环境情况可能会很复杂。

作者:Tyler Ning
出处:http://www.cnblogs.com/tylerdonet/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,如有问题,可以通过以下邮箱地址williamningdong@gmail.com  联系我,非常感谢。

目录
相关文章
|
3天前
|
人工智能 JSON API
全网刷屏的 Jev 模型正式开放!一手实战测评 + 保姆级教程
全网爆火的 Jev 模型是什么?有什么用?怎么使用?怎么接入 AI 编程工具?效果真的好么?傻子可懂的 Jev 保姆级实战教程 + 项目实战测评来啦
5390 6
|
1天前
|
人工智能 测试技术 API
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
Jev是TypeSafe AI推出的“系统一模型”,不生成文本,专做毫秒级结构化决策:Choice(多选)、Score(打分)、Noul(是非概率)。响应快193倍、成本低444倍,适合工单路由、内容审核、测试定级等高频判断场景。
840 0
最近全网爆火的 Jev 到底是什么?适合干什么、怎么用,一篇讲透!
|
15天前
|
人工智能
千问办公官网入口:阿里AI办公QwenWork产品页和免费网页端链接
千问办公官网含两大入口:一是网页端(qwenwork.cn),即开即用,支持浏览器直接访问;二是阿里云产品页 https://t.aliyun.com/U/JNKJuO 提供免费/付费版详情、功能介绍及使用指南。
|
15天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork详细介绍:产品核心能力、典型场景、价格及常见问题解答
千问办公是阿里云推出的一站式AI办公平台,主打"不止于对话,更注重交付",依托通义千问旗舰大模型,用户一句话即可完成数据分析、PPT生成、视频剪辑等复杂任务,直接输出可用成果。产品深度打通钉钉生态与企业OA,覆盖桌面端、网页端,提供企业标准版198元/人/月等多档订阅方案,新用户注册即赠2000积分,适配工程师、HR、财务等多职业办公场景,成为能动手干活的"全能AI同事"。
|
14天前
|
IDE 开发工具
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
Qoder国际版上线全新内置大模型Sonus(/ˈsoʊnəs/),全球领先,专精超长任务执行与电脑操作(Computer Use)。配合Qoder桌面端0.2.3版本,可自主完成编程、金融建模、科研及表格制作等复杂工作。现全面支持Qoder全系产品,效率提升3.2倍。
1743 8
Qoder 上线 Sonus 模型,Computer Use 能力全面增强
|
16天前
|
缓存 人工智能 自然语言处理
阿里云qwen3.8-flash大模型介绍:模型能力、模型价格、免费额度与最新活动
本文是阿里云百炼平台Qwen3.8-Flash大模型的选型接入指南,作为兼顾性能与响应速度的高性价比多模态模型,它支持百万级上下文窗口、全场景多模态输入与完整智能体能力矩阵,适配编程辅助、智能体协作等核心场景。文中同步梳理了最新下调的阶梯定价、夜间4折等优惠活动,搭配OpenAI兼容流式调用示例,帮助开发者低成本快速落地高并发AI应用。
阿里云qwen3.8-flash大模型介绍:模型能力、模型价格、免费额度与最新活动
|
9天前
|
缓存 IDE Java
【保姆级】Android Studio下载、安装和汉化教程(2026最新)
Android Studio 是 Google 官方推出的免费 Android 应用开发集成环境,基于 IntelliJ IDEA,内置模拟器、调试器、性能分析及 Compose 界面工具,功能全面,文档丰富,是安卓开发首选工具。(239字)
1068 1
|
15天前
|
人工智能 API 内存技术
刚刚 DeepSeek V4.1 Flash 开启内测,1 分钟教你用上!
刚刚 DeepSeek 内测群发布了 DeepSeek V4.1 Flash 中间版本内测的消息,这次的模型采用了新的结构,原生支持多模态、能力更强、速度更快、且成本更低。
2013 15