Sql server 如何按顺序运行SQL Server合并复制作业?

Sql server 如何按顺序运行SQL Server合并复制作业?,sql-server,sql-server-2008-r2,merge-replication,Sql Server,Sql Server 2008 R2,Merge Replication,我使用的环境使用合并复制,每10分钟向6个订阅者发布12个出版物。当某些作业同时运行时,会遇到死锁和阻塞,复制过程效率低下 我想创建一个SQL Server代理作业,该作业以特定顺序运行一组合并复制作业,等待其中一个作业完成,然后再开始下一个作业 我创建了一个按顺序启动作业的SSIS包,但它使用sp_start_作业,运行时会立即启动所有作业,以便它们再次一起运行 另一个目的是能够禁用到特定服务器的复制,而不是单独禁用十几个作业或暂时完全禁用复制以避免70多个单独禁用 现在,如果禁用合并复制作业

我使用的环境使用合并复制,每10分钟向6个订阅者发布12个出版物。当某些作业同时运行时,会遇到死锁和阻塞,复制过程效率低下

我想创建一个SQL Server代理作业,该作业以特定顺序运行一组合并复制作业,等待其中一个作业完成,然后再开始下一个作业

我创建了一个按顺序启动作业的SSIS包,但它使用sp_start_作业,运行时会立即启动所有作业,以便它们再次一起运行

另一个目的是能够禁用到特定服务器的复制,而不是单独禁用十几个作业或暂时完全禁用复制以避免70多个单独禁用

现在,如果禁用合并复制作业,SSIS包仍将启动并运行它

我现在尝试为每个复制作业创建一个SSIS包,然后创建一个按顺序调用这些包的SQL Server代理作业。该作业需要8秒钟才能完成,而它调用的各个包启动复制作业至少需要一分钟才能完成。换句话说,这也行不通

SQL Server代理知道复制作业何时完成!为什么SSIS包或作业步骤不知道?如果控制流不起作用,有什么意义


插入等待是无用的。单个作业可能需要1秒到一小时的时间,这取决于需要复制的内容。

可能我没有看到真正的问题,但很自然,您需要同步点,并且有许多方法来创建它。
例如,您仍然可以同时运行作业,但让第一个作业锁定第二个作业所需的资源,该资源将等待资源解锁。或者第二个作业可以在循环中侦听日志表,并等待一分钟,一小时后自动取消…

我需要作业按特定顺序运行,我不希望创建有意阻塞。订阅服务器上的其他事务取决于序列和资源。如果不是故意阻塞,为什么不在循环中与跟踪日志表同步?我认为像在SQL SERVER警报上同步这样的异乎寻常的做法不太可取。实际上,您可以在成功启动新作业时添加新步骤,您甚至可以从另一个作业中添加这些步骤,或者在作业中创建作业,作业也可以删除自身,但我仍然更喜欢使用循环和跟踪事件表进行透明同步。我想我很了解您,这听起来是一个不错的方法,但我不知道在这种情况下如何做这些事情。你能更具体地说明怎么做,或者指出一个我可以研究的来源吗?谢谢你的回复。