当前位置: 首页 > news >正文

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

 在SQL SERVER的复制(Replication)中,有可能出现由于业务需求变更,需要新增一张表或一些表到已有的复制(发布订阅)当中,这种需求应该是很 正常,也很常见的。但是在已有的复制(发布订阅)当中增加新表/文章,往往需要将整个快照重新初始化,这样做虽然简单,但是往往在实际应用中会出现一些问 题,例如,发布订阅的表比较多,数据量比较大,那么重新初始化快照往往需要很长一段时间,影响系统正常运行。另外就是这样做会增大服务器的负荷,影响网络 带宽.

 

    那么是否可以在新增表/文章后,不用初始化整个快照,而只是初始化新增的表呢? 当然可以,下面以一个小案例来讲述一下如何操作:

 

在数据库TTT上建立了名为RPL_TTT的发布,要发布的对象为WipNoToReed和WipNoToStarch这两张表,在另外一个服务器的数据库Test上订阅了该发布。现在由于需求变跟,需要增加一张表WipNoToLoosen

clipboard

 

我们可以按照下面三个步骤来操作,如下所示:

 

1:使用sp_helppublication查看该发布的相关信息,如下所示,你会看到默认情况下,'immediate_sync' 和 'allow_anonymous'这两个属性都是启用的。我们首先需要禁用这两个属性。

       

        allow_anonymous      表示是否允许对发布使用匿名订阅。

       immediate_sync       表示是否在每次快照代理运行时创建或重新创建同步文件。

use TTT;
go
 
sp_helppublication;
 
 
use TTT;
go
 
exec sp_helppublication  'RPL_TTT';

clipboard[1]

 

clipboard[2]

 

 
--Run on your publisher database
use TTT;
go
 
EXEC sp_changepublication
@publication = 'RPL_TTT',
@property = 'allow_anonymous' ,
@value = 'false'
GO
EXEC sp_changepublication
@publication = 'RPL_TTT',
@property = 'immediate_sync' ,
@value = 'false'
GO 

 

2:在本地发布当中找到"RPL_TTT",然后在"项目"当中增加表WipNoToLoosen,当然你也可以使用 sp_addarticle命令添加。如下所示:

clipboard[3]

 

image

 

3:在发布"RPL_TTT"上,右键单击“查看快照代理状态”,在弹出的窗口上选择“启动”,你会发现快照只会初始化一个表而不是整个三个表。

clipboard[4]

命令执行完成后,你会发现该表的subscription_status变为了2,如下所示

image

至于完成后,'immediate_sync' 和 'allow_anonymous'这两个属性如果你要启动的话,也是非常简单容易的。不启用也问题不大。

相关文章:

  • [转载]DBA的特质第二部分:性格
  • Dubbo与Zookeeper、SpringMVC整合和使用(负载均衡、容错)
  • 【改造Linux命令之rm - 删除文件或目录-】
  • setResult详解
  • JavaEE 要懂的小事:二、图解 Cookie(小甜饼)
  • 数据库的元数据及事务
  • WinForm输入网址打开源码
  • vector,map 注意事项
  • Atiti. Php Laravel 5.1 环境搭建以及  error 排除
  • tomcat配置文件server.xml详解
  • Nodejs和JavaWeb协助开发
  • JAVA 位操作学习
  • idea演示
  • F5 实现pool池转发
  • ie7下a/a标签不反应
  • [deviceone开发]-do_Webview的基本示例
  • 【Amaple教程】5. 插件
  • 阿里云应用高可用服务公测发布
  • 百度地图API标注+时间轴组件
  • 高程读书笔记 第六章 面向对象程序设计
  • 双管齐下,VMware的容器新战略
  • 我有几个粽子,和一个故事
  • 优秀架构师必须掌握的架构思维
  • MiKTeX could not find the script engine ‘perl.exe‘ which is required to execute ‘latexmk‘.
  • ​iOS安全加固方法及实现
  • ​插件化DPI在商用WIFI中的价值
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $(selector).each()和$.each()的区别
  • (01)ORB-SLAM2源码无死角解析-(66) BA优化(g2o)→闭环线程:Optimizer::GlobalBundleAdjustemnt→全局优化
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (2020)Java后端开发----(面试题和笔试题)
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (ibm)Java 语言的 XPath API
  • (附源码)springboot车辆管理系统 毕业设计 031034
  • (黑马出品_高级篇_01)SpringCloud+RabbitMQ+Docker+Redis+搜索+分布式
  • (十七)devops持续集成开发——使用jenkins流水线pipeline方式发布一个微服务项目
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (新)网络工程师考点串讲与真题详解
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .NET 服务 ServiceController
  • .NET简谈设计模式之(单件模式)
  • .Net开发笔记(二十)创建一个需要授权的第三方组件
  • .NET轻量级ORM组件Dapper葵花宝典
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • [14]内置对象
  • [Android]创建TabBar
  • [BUG]vscode插件live server无法自动打开浏览器
  • [CISCN2019 华东南赛区]Web4
  • [Latex] Riemann 问题中的激波,接触间断,膨胀波的 Tikz 绘图
  • [Linux] PHP程序员玩转Linux系列-telnet轻松使用邮箱
  • [LOJ 6213]「美团 CodeM 决赛」radar
  • [na]wac无线控制器集中转发部署的几种情况
  • [office] excel如何计算毛重和皮重的时间间隔 excel计算毛重和皮重时间间隔方法 #笔记#学习方法
  • [Oh My C++ Diary]return 1和return 0的区别
  • [PHP]关联和操作MySQL数据库然后将数据库部署到ECS