我有一个几个月前创建的复制方案。从那时起,架构发生了各种变化。所有现有订阅都在进行这些更改时进行了更新,因为发布也被设置为推送架构更改。
然而,最近在尝试添加新订阅时,初始快照无法应用。错误的原因是两个不同的视图应用失败,因为它们所依赖的表还没有被快照创建。
我知道我可以通过 sp_changemergearticle 存储过程指定文章的处理顺序。但是据我了解...这里的处理顺序设置是用于指定在同步期间将数据更改应用于订阅者的顺序。有没有办法指定初始化新订阅时应用文章的顺序?它使用相同的设置吗?
我认为生成新快照会导致引擎找出正确的顺序,但就我当前的出版物而言,它没有。即使在我生成新快照后,新订阅也无法应用快照。它告诉我失败的确切脚本,当手动应用时,很明显它失败了,因为视图所需的表尚不存在。
解决此问题的最佳方法是什么?设置文章的处理顺序是否会影响架构顺序和数据顺序,或者我是否需要查看其他地方来设置文章基于新订阅的顺序。
据我所知,处理顺序设置对快照在初始化期间应用其文章的顺序没有任何影响。主要是因为目前我所有的文章的处理顺序都为 0。那么,这是我可以控制的事情还是我受快照生成过程的支配?
是的,使用sp_changemergearticle更改处理顺序将缓解此问题。
我有同样的问题,托马斯很好地暴露了。据我所知,处理顺序对快照模式顺序没有任何影响,但仅对数据应用顺序有影响。
我认为架构的应用顺序与文章添加到出版物的顺序相同。我不确定,希望得到确认。
在.SCH 文件末尾添加的数字可以作为了解快照构成和应用背后逻辑的线索。