【问题标题】:Replication - Adding article to a publication causing the snapshot of all other articles复制 - 将文章添加到出版物,导致所有其他文章的快照
【发布时间】:2013-07-31 02:01:23
【问题描述】:

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

  1. 为什么有时如果只添加一篇文章,所有文章都会重新快照?
  2. 是否可以在快照代理下次运行时(例如在 DMV 或系统表中)预先知道哪些文章被标记为要进行快照?

非常感谢。

【问题讨论】:

    标签: sql-server transactional-replication


    【解决方案1】:

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

    【讨论】:

    • immediate_sync 和 allow_anonymous 都是假的。还有其他想法吗?
    • 不幸的是,没有。我过去遇到这个问题的时候,就是那些设置。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-04
      • 1970-01-01
      • 1970-01-01
      • 2019-01-10
      • 1970-01-01
      • 2018-08-16
      相关资源
      最近更新 更多