复制 - 将文章添加到导致所有其他文章的快照的发布中

时间:2013-07-31 02:01:23

标签: sql-server transactional-replication

将文章(表)添加到发布,然后运行快照代理应仅为新文章创建快照。但是,有时复制会决定对发布中的每篇文章进行重新快照。所以,我有两个问题:

  1. 如果只添加了一篇文章,为什么有时会对所有文章进行重新快照?
  2. 下次快照代理程序运行时(例如在DMV或系统表中)是否可以事先知道哪些文章被标记为快照?
  3. 非常感谢。

2 个答案:

答案 0 :(得分:0)

如果内存服务,则此行为由发布上的两个设置控制:immediate_sync和allow_anonymous。为了获得您想要的行为(即添加一篇文章并使快照属于一篇文章),这两个设置都必须为false。幸运的是,您可以在已发布数据库的syspublications表中找到两者的值,并使用sp_changepublication更改它们

答案 1 :(得分:0)

这看起来很奇怪,但是在添加文章时我已经看到了这个,解决方案是取消添加文章,因为它要求创建完整的快照。然后运行快照代理,它应该发现它无关,然后添加文章。奇怪我知道,但经过7年的复制经验,我发现这对我来说每次都有效。根据BOL,Ben Thul在immediate_sync上也是正确的。