【问题标题】:SQL server replication over replicationSQL Server 复制优于复制
【发布时间】:2015-10-15 08:42:40
【问题描述】:

我有以下情况:

-服务器 1 有一个 data_server1 数据库和一个称为 TANS_PUB(9 表文章)的事务性发布(通过 Internet)

-服务器 2 是 TANS_PUB 的订阅者,并且有一个本地数据库“data_server2”

注意:data_server1 和 data_server2 具有相同的结构(架构) 并且反式复制工作得很好

现在在 server2 中,我创建了一个名为 MERG_PUB 的合并发布(通过 Internet 并将所有表作为文章),并且我让 server1 成为它的订阅者。此合并 pub 是从 data_server2 到 server1 中的 data_server1_2。这种复制也很有效。

问题是: 如果 9 个表之一(在 server1 中)(例如 TAB1)手动或通过程序更新,则 server2 中的 TAB1 会更新(通过基于 TANS_PUB 的复制),但 data_server1_2(server1)中的 TAB1 不会更新 :-( (在这种情况下,MERG_PUB 不起作用),请注意,如果我手动更新 server2 中的 TAB1 或通过 data_server1_2(server1)中的程序 TAB1 更新得很好!!!!!!

你能帮忙吗????

1000 谢谢

【问题讨论】:

    标签: merge replication transactional


    【解决方案1】:

    听起来您正在使用带有事务复制和合并复制的重新发布者模型,并且源自上游的更新并没有一直传递到下游。在此模型中,默认情况下,分发代理在执行插入/更新/删除时不会触发合并触发器,因此更改不会记录在合并跟踪表中,因此它们永远不会复制到合并订阅者。

    为缓解此问题,请将参与事务发布的所有合并文章的合并文章属性 @published_in_tran_pub 设置为 true

    USE MergePublicationDB
    
    EXEC sp_changemergearticle 
      @publication = 'MergePublicationName',
      @article = 'MergeArticleName', 
      @property = N'published_in_tran_pub', 
      @value = N'true'
    GO
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-15
      • 2013-02-10
      • 2010-10-21
      • 2011-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      相关资源
      最近更新 更多