我有一个运行良好的 SSIS 包。该软件包每晚运行一次,大约需要 4 小时才能完成。我是 SSIS 的新手,所以我想看看我的选择是什么。我在网上找不到关于这两个问题的任何信息,因此非常感谢任何建议。
当我遇到电源故障/意外重启等外部问题时该怎么办。有没有办法提醒某人或让包裹在重新启动时重新开始。
几周前,有一个进程挂起并锁定了表,导致该进程无法执行。在开始之前确保我有适当的访问权限的最佳方法是如何处理,如果没有,请获得访问权限。我可以杀死进程等。
寻找最佳实践信息。谢谢
我有一个运行良好的 SSIS 包。该软件包每晚运行一次,大约需要 4 小时才能完成。我是 SSIS 的新手,所以我想看看我的选择是什么。我在网上找不到关于这两个问题的任何信息,因此非常感谢任何建议。
当我遇到电源故障/意外重启等外部问题时该怎么办。有没有办法提醒某人或让包裹在重新启动时重新开始。
几周前,有一个进程挂起并锁定了表,导致该进程无法执行。在开始之前确保我有适当的访问权限的最佳方法是如何处理,如果没有,请获得访问权限。我可以杀死进程等。
寻找最佳实践信息。谢谢
对于#1 - SSIS 中没有固有的“重新启动”机制,因为从一开始就没有固有的“启动”机制。您必须查看您管理包的计划执行的过程,我认为这可能是 SQL 代理。鉴于此,无论作业的内容是否为 SSIS 包,用于确定 SQL 代理作业是否失败和/或重新启动该作业的选项都是相同的。有相当多的存储过程用于监视和查询作业执行和结果。您还可以实现自己的记录作业/包状态的机制。SSIS 确实提供“检查点”来帮助您从某些点重新启动包,但对该功能的普遍共识是它的适用性有限 - 您的里程可能会有所不同。亲自,我总是在我的工作中包含一条失败路线,以便在工作失败时向某人发送电子邮件,并将我的工作和包配置为幂等的——也就是说,它们可以重新运行,而不必担心不正确地执行相同的操作两次。他们要么“重置”环境(删除并重新加载),要么他们可以准确地检测到他们离开的地方。
第 2 项是一个难题,很大程度上取决于您的环境和场景。您可以使用简单的任务(如执行 SQL 任务)来运行“测试”命令,如果存在足够的权限或锁,这些命令会被测试失败。或者,您可以直接通过 SP 或其他机制进行查询,以确定是否需要在尝试运行您的软件包之前采取补救措施。在“失败时”使用优先约束可以帮助这种逻辑。事件处理程序也可以。