SQL server-Replication-新增article注意事项

默认情况下在日志复制中如果新增加Article那么需要产生一个包含所有Article的Snapshot。由于产生Snapshot会加锁,同时会产生IO操作,所以对于大的数据库性能影响是很大的。

可以通过下面的办法让SQL Server针对增加的Article产生Snapshot。

1.      Disable 'immediate_sync'  'allow_anonymous'选项(默认都是开启的)。

–在发布数据库运行下面的代码(pub_AdventureWorksDW为发布名称)

EXEC sp_changepublication@publication='pub_AdventureWorksDW',@property='allow_anonymous',@value='false'

 Go

 EXEC sp_changepublication@publication = 'pub_AdventureWorksDW',@property='immediate_sync',@value='false'

 GO

2.      在发布数据库运行sp_helpsubscription确保immediate_sync和allow_anonymous值为0.

3.       在发布中增加新的Article(test4).

4. 使用sp_helpsubscription 可以看到新增的Article还没有Active.(subscription status 订阅状态:0 = 不活动1 = 已订阅 2 = 活动)

5.      启动Snapshot Agent同步化新增的Article.

6.      可以看到Snapshot指产生了一个Article,而不是所有的。新Article订阅的状态已经变为2(Active)

7.    在订阅服务区看到新增的Article已经存在了。

原文地址:https://www.cnblogs.com/roseHLF/p/article.html