【发布时间】:2012-03-28 19:18:03
【问题描述】:
我正在寻找有关如何实现双向复制的建议,该复制仅复制 SQL Server 2008 中的特定行。
例如,我想在两个数据库(欧洲和亚洲)之间复制表 A。我希望该表同时包含本地数据和共享数据。这将使用字段“区域”来表示,其值为
- 全球
- 欧洲
- 亚洲
我已经设置了一个合并复制,其中欧洲是发布者,亚洲是订阅者和过滤器
WHERE region = 1
试图只复制 region = 1 的行
将 global 行添加到欧洲或亚洲数据库非常适合显示在对面表中的行。
将 Europe 行添加到 Europe DB 效果很好,无需复制到 Asia DB(根据需要)
将 Asia 行添加到 Asia DB 中并不能满足我的要求,因为该行已复制到 Europe DB 并从 Asia DB 中删除。
我理解为什么发布者/订阅者关系会出现这种情况,但这令人沮丧。
然后我认为点对点可能是解决方案,但我无法过滤点对点。
有没有办法实现我正在寻找的东西?
谢谢大家
【问题讨论】:
-
过滤器不是这样工作的——你不是说“只复制区域 1 的数据”,而是说“订阅者应该只包含区域 1 的数据”。
-
达米恩,感谢您的回复。那么,我可以将过滤器更改为区域 IN (1,3)?这意味着亚洲数据库将拥有全球和亚洲数据,而欧洲数据库将拥有全球、欧洲和亚洲数据。关于如何实现我正在尝试的任何更好的想法?
标签: sql filter replication bidirectional merge-replication