微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQLServer2005 复制中增量快照的配置

最近在对一个项目数量较大的发布做快照初始化时,遇到一个问题,就是在对发布添加新项目后,创建快照做初始化时,时间非常长,到最后超时失败,观察快照文件夹后,发现每次创建快照时,该发布下的所有项目都被重新初始化,后来在创建发布时有两个关键参数:

@immediate_sync,@allow_anonymous 有关这两上参数的说明在帮助文档中有说明。

@allow_anonymous = N'false',@immediate_sync = N'false'  :当发布中添加新项目后,创建初始化快照时,快照将以增量方式创建
@allow_anonymous = N'true',@immediate_sync = N'true'   :当发布中添加新项目后,创建初始化快照时,该发布下面所有项目的快照将全部重新初始化

如果是以增量方式创建的发布,在用脚本向发布中添加项目时,该发布相关的订阅需重新创建,即再次执行sp_addsubscription过程,否则在做快照初始化时会提示“由于没有需要初始化的订阅,因此未生成快照”。如果是以图形界面来勾选项目的话,就没这个问题,可以直接创建快照,估计这个sp_addsubscription步骤是被自动执行。

发布创建后,可以通过 sp_changepublication来变更参数

sp_changepublication  @publication = 'test'
     ,@property = 'immediate_sync'
      @value =  false
GO
sp_changepublication  @publication = 'test'
     ,@property = 'allow_anonymous'
      @value =  false
GO

最后,如果@allow_anonymous = N'true',分发库中的MSrepl_commands和MSrepl_commands表的事务记录会保留@max_distretention 设定的时长,因为我的发布项目数量很多,所以导致这两个表的记录数相当宠大。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐