SQL 服务器复制超过复制

SQL server replication over replication

我有以下场景:

-服务器 1 有一个 data_server1 数据库和一个名为 TANS_PUB 的交易发布(通过互联网)(9 tables 文章)

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

Note: data_server1 and data_server2 have the same structure (schema) and the trans replication work very well

现在,我在服务器 2 中创建了一个名为 MERG_PUB 的合并出版物(通过互联网和所有 table 的文章),我让服务器 1 成为它的订阅者。此合并酒吧在服务器 1 中从 data_server2 到 data_server1_2。这种复制也很有效。

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

你能帮忙吗????

千分感谢

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

要缓解此问题,请将合并文章 属性 @published_in_tran_pub 设置为 true 所有合并参与交易出版物的文章。

USE MergePublicationDB

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