ITPub博客

首页 > Linux操作系统 > Linux操作系统 > SQLServer2005 复制中增量快照的配置

SQLServer2005 复制中增量快照的配置

原创 Linux操作系统 作者:seteor 时间:2010-02-24 15:19:58 0 删除 编辑

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

@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 设定的时长,因为我的发布项目数量很多,所以导致这两个表的记录数相当宠大。


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/618537/viewspace-683539/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-10-31

  • 博文量
    25
  • 访问量
    60876