【问题标题】:Lock an SSIS package from multiple simultaneous executions从多个同时执行中锁定 SSIS 包
【发布时间】:2016-11-14 17:41:50
【问题描述】:

我有一个部署到 SSISDB 的 SSIS 包 (Package1.dtsx)。目前我在 sql server agent 中使用一些参数安排了包。

如果有人尝试在另一个具有不同参数的 sql server 代理作业中运行它,我如何锁定包 (Package1.dtsx)。

【问题讨论】:

  • 如果它从 SQL Server 代理运行,只需禁用您不想授予权限的所有其他用户的执行权限。如果您的问题如此简单,这应该相当简单。
  • 所有作业都将使用同一个 etl 代理帐户。但有些用户会根据需要在不同时间启动不同的 sql server 代理作业。这会负责锁定包裹吗?

标签: sql-server ssis sql-server-2012 sql-server-data-tools sql-server-agent


【解决方案1】:

您可以通过添加标志并让您的包在处理之前检查此标志来自己执行此操作。退出,循环直到标志被清除或其他一些逻辑。

我个人曾经每个包只有一个代理,并且代理处理多个执行场景。

【讨论】:

    【解决方案2】:

    锁定一个包以防止它被多次执行是不可能的。把它想象成一个文件。无法从有权使用文件的用户那里锁定文件。

    您可以在 SQL Server 上创建用户组/角色,以根据您的需求/使用因素来隔离执行。对我来说,没有直接的方法可以将文件从多次执行中锁定。对不起!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-11
      • 1970-01-01
      • 2016-10-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多