首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

Transaction replication只对新增的Article发生Snapshot

2013-03-12 
Transaction replication只对新增的Article产生Snapshot默认情况下在日志复制中如果新增加Article那么需要

Transaction replication只对新增的Article产生Snapshot

默认情况下在日志复制中如果新增加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).

 

 Transaction replication只对新增的Article发生Snapshot

 

4. 使用sp_helpsubscription 可以看到新增的Article还没有Active.(subscription status 订阅状态:

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

 

 Transaction replication只对新增的Article发生Snapshot

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

Transaction replication只对新增的Article发生Snapshot

Transaction replication只对新增的Article发生Snapshot

 

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

 

Transaction replication只对新增的Article发生Snapshot

 

热点排行