从命令行或存储过程启动复制订户的同步

时间:2016-01-18 11:39:46

标签: sql-server database-replication

我们有一个发布商和三个订阅者。同一局域网上的两个用户和一个远程用户。

每天晚上我们都会面临一个问题,即复制失败并且不会重新启动。

消息显示:每个发布商都失败。

我们不确定发生了什么,但到了晚上我们已经安排了维护计划,我怀疑这可能会导致我们的复制工作停止......

作为临时补丁,我尝试做的是,如果状态在超过30分钟内显示为FAILED,则会有一个重启复制的程序。

我们已经创建了一个检测当前复制状态的程序,因此我们现在需要知道如何以编程方式(存储过程或命令行)重新启动每个订阅者的复制。

我们想要的是打开复制监视器时的确切功能,右键单击订阅者,然后单击“开始同步”#34;。顺便说一句,当我们每天早上到办公室时,正确地开始复制。

2 个答案:

答案 0 :(得分:1)

基于以上所述,如果您已经有一个程序检测到复制状态并知道何时需要再次启动它,那么您应该从命令行执行replmerge。探查器可以提供有关命令行参数的详细信息,您可以执行该命令。

post详细说明了如何从命令行启动此命令。

希望这有帮助。

答案 1 :(得分:1)

我使用下面的代码在CMD中同步合并发布。

参数详情: -

  

出版物 - “RmoMergePub”

     

Publisher - “。\ SQLSERVER2014”

     

订阅者 - “。\ SQLEXPRESS2014”

     

分销商 - “。\ SQLSERVER2014”

     

发布商数据库 - “RMOser”

     

订阅者数据库 - “RMOcli”

  "C:\Program Files\Microsoft SQL Server\100\COM\REPLMERG.EXE" -Publication "RmoMergePub" -Publisher ".\SQLSERVER2014" -Subscriber ".\SQLEXPRESS2014" -Distributor ".\SQLSERVER2014" -PublisherDB "RMOser" -SubscriberDB "RMOcli" -PublisherSecurityMode 1  -OutputVerboseLevel 2  -SubscriberSecurityMode 1  -SubscriptionType 1 -DistributorSecurityMode 1  -Validate 3  -ParallelUploadDownload 1