SQL SERVER Transactional Replication中添加新表如何不初始化整个快照

王朝学院·作者佚名  2016-05-25
窄屏简体版  字體: 小  |  中  |  大  |  超大  

SQL SERVER Transactional Replication中添加新表如何不初始化整个快照 2015-02-02 00:29 by 潇湘隐者, ... 阅读, ... 评论, 收藏, 编辑 在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很正常,也很常见的。但是在已有的复制(发布订阅)当中增加新表/文章,往往需要将整个快照重新初始化,这样做虽然简单,但是往往在实际应用中会出现一些问题,例如,发布订阅的表比较多,数据量比较大,那么重新初始化快照往往需要很长一段时间,影响系统正常运行。另外就是这样做会增大服务器的负荷,影响网络带宽. 那么是否可以在新增表/文章后,不用初始化整个快照,而只是初始化新增的表呢? 当然可以,下面以一个小案例来讲述一下如何操作: 在数据库TTT上建立了名为RPL_TTT的发布,要发布的对象为WipNoToReed和WipNoToStarch这两张表,在另外一个服务器的数据库Test上订阅了该发布。现在由于需求变跟,需要增加一张表WipNoToLoosen 我们可以按照下面三个步骤来操作,如下所示: 1:使用sp_helppublication查看该发布的相关信息,如下所示,你会看到默认情况下,'immediate_sync' 和 'allow_anonymous'这两个属性都是启用的。我们首先需要禁用这两个属性。 allow_anonymous 表示是否允许对发布使用匿名订阅。 immediate_sync 表示是否在每次快照代理运行时创建或重新创建同步文件。

use TTT;

go

sp_helppublication;

或

use TTT;

go

exec sp_helppublication 'RPL_TTT';

--Run on your publisher database

use TTT;

PRe style="border-bottom-style: none; text-align: left; padding-bottom: 0px; line-h

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航