2010-05-11 94 views
2

我有一个SSIS包工作正常。包裹每晚运行,需要大约4个小时才能完成。我对SSIS是一个新手,所以我想看看我的选择是什么。我在网上找不到关于这两个问题的任何内容,因此非常感谢任何建议。SSIS处理外部问题

  1. 怎么办时,我有一个外部 问题,如电源故障 /意外重启。有没有 提醒某人或让 程序包在重新启动时重新开始。

  2. 几个星期前,有一个 的过程,得到了悬挂和锁定 表,制作过程不 执行。如何 处理,以确保我有适当的 访问之前开始,如果没有, 得到访问的最佳途径。我很喜欢 的进程等

寻找最佳实践信息。谢谢

回答

1

对于#1 - 在SSIS中没有固有的“重启”机制,因为从一开始就没有固有的“启动”机制。您必须查看管理包的预定执行的过程,我认为这可能是SQL Agent。 鉴于此,无论作业的内容是否为SSIS包,用于确定SQL Agent作业是否失败和/或重新启动该作业的选项都是相同的。有相当多的存储过程用于监视和查询作业执行和结果。您也可以实施自己的记录作业/包状态的机制。 SSIS确实提供了“检查点”以帮助您从某些点重新启动软件包,但对此功能的一般认同是它的适用性有限 - 您的里程可能会有所不同。 就我个人而言,我总是在工作中包含一条失败路线,在工作失败时通过电子邮件向某人发送电子邮件,并将我的工作和软件包配置为幂等 - 也就是说,他们可以重新运行而无需担心两次不正确地执行相同的操作。他们或者“重置”环境(删除和重新加载),或者他们可以准确地检测到他们离开的地方。

项目#2是一个难题,并且很大程度上取决于您的环境和场景。如果存在足够的特权或锁,则可以使用简单的任务(如执行SQL任务)来运行经测试失败的“测试”命令。或者,您也许可以通过SP或其他机制直接查询,以确定在尝试运行包裹的肉类之前是否需要采取补救措施。 使用优先约束“失败”可以辅助这种逻辑。所以可以事件处理程序。

+0

非常好的回应,谢谢! – 2010-05-12 16:12:59