在已有事务复制中,时长需要新增表、索引,这些变更时不会同步到从库中。如果采用默认的设置,每次都需要重新初始化快照,从库重新应用快照和未执行的同步命令,这显然是无法在线上实践的方法。另一种方法是将新增的架构变更新建一个发布订阅,但会造成维护困难,增加出错的几率。
       可以通过设置immediate_sync和allow_anonymous 来实现不重新初始化快照的前提下新增表。
       先看着两个参数的含义:
       immediate_sync:指定每次运行快照代理时是否为发布创建同步文件。 immediate_synchronization 的数据类型为 nvarchar(5),默认值为 FALSE。 如果为 True,表示每次运行快照代理时都创建或重新创建同步文件。 如果快照代理在订阅创建前完成,则订阅服务器可以立即获得同步文件。 新订阅将获取最近一次执行快照代理所生成的最新同步文件。 independent_agent 必须为 true,以便于 immediate_synchronization 为 true。 如果为 False,则仅当有新订阅时,才创建同步文件。 当以增量方式向现有发布添加新项目时,必须为每个订阅调用 sp_addsubscription。 订阅后订阅服务器无法接收同步文件,直到启动并完成快照代理为止。
       allow_anonymous:指定是否可为给定发布创建匿名订阅。 allow_anonymous 的数据类型为 nvarchar(5),默认值为 FALSE。 如果为 True,则 immediate_synchronization 也必须设置为 True。 如果为 False,则表示不允许对该发布创建匿名订阅。
       从定义中看出来,immediate_sync为false时,新的项目(表、存储过程等)可以以增量方式发布,而allow_anonymous必须为false,immediate_sync才能为false。
 
  

##注意:从定义中看出来,immediate_sync为false时,新的项目(表、存储过程等)可以以增量方式发布,而allow_anonymous也必须为false,immediate_sync才能为false。

##同时如果删除发布项目的中已发布的表/函数/存储过程/字段订阅库中的对应的表/函数/存储过程/字段仍然被保留,如要删除必须手工操作

案列,创建了一个数据库masterdb,创建一张表t: 
CREATE TABLE t( id INT ,NAME VARCHAR( 10),CONSTRAINT pk_t PRIMARY KEY (id))
INSERT INTO t VALUES(1 ,1),( 2,2 ),(3, 3)
订阅名为repl_master,订阅数据库slavedb。
查看现有数据库这两个属性的设置,现在设置都是1
USE msterdb
sp_helppublication;
或者:
select immediate_sync ,allow_anonymous from dbo .syspublications

修改这两个参数为0:
use msterdb ;
go
EXEC sp_changepublication
@publication = 'repl_master',
@property = 'allow_anonymous' ,
@value = 'false'
GO
EXEC sp_changepublication
@publication = 'repl_master',
@property = 'immediate_sync' ,
@value = 'false'
GO

新建一个表,并进行发布
CREATE TABLE t1( id INT ,NAME VARCHAR( 10),CONSTRAINT pk_t1 PRIMARY KEY(id ))
INSERT INTO t1 VALUES(1 ,1),( 2,2 ),(3, 3)

在发布属性的项目中勾选新增表:

在复制监视器中启动代理,看到

日志生成状况:

查看从库,表t1已经同步。

删除同步就比较简单了,只需要在发布的项目中删除该项目就行,但是在订阅数据库中依然保留该表,需要手动drop

##注:新增函数/存储过程类似如上操作,新增字段直接在发布库执行即可

【sql server复制】不重新初始化快照的情况下新增表/存储过程/函数等的更多相关文章

  1. sqlserver同步后在不重新初始化快照的情况下新增表

           在已有事务复制中,时长需要新增表.索引,这些变更时不会同步到从库中.如果采用默认的设置,每次都需要重新初始化快照,从库重新应用快照和未执行的同步命令,这显然是无法在线上实践的方法.另一种 ...

  2. 【查阅】教你使用SQL SERVER复制

    关键词:复制,复制总结,复制汇总,复制查阅 1.概念与搭建 Step1:SQL SERVER复制介绍 Step2:SQL Server 复制事务发布 Step3:SQL Server 通过备份文件初始 ...

  3. 玩转SQL Server复制回路の变更数据类型、未分区表转为分区表

    玩转SQL Server复制回路の变更数据类型.未分区表转为分区表 复制的应用: 初级应用:读写分离.数据库备份 高级应用:搬迁大型数据库(跨机房).变更数据类型.未分区表转为分区表 京东的复制专家 ...

  4. SQL Server 复制订阅

    标签:SQL SERVER/MSSQL SERVER/数据库/DBA/高性能解决方案/高可用 概述 配置复制就没有数据库镜像和AlwaysOn的要求那么高,只需要两台服务器能通过TCP进行通讯即可,两 ...

  5. SQL Server 复制:事务发布

    一.背景 在复制的运用场景中,事务发布是使用最为广泛的,我遇到这样一个场景:在Task数据库中有Basic与Group两个表,需要提供这两个表的部分字段给其它程序读取放入缓存,程序需要比较及时的获取到 ...

  6. SQL Server复制入门(一)----复制简介

    简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是一些列技术的集合,包括从存储转发数据到同步数据到维护 ...

  7. SQL Server复制入门(一)----复制简介【转】

    SQL Server复制入门(一)----复制简介 简介 SQL Server中的复制(Replication)是SQL Server高可用性的核心功能之一,在我看来,复制指的并不仅仅是一项技术,而是 ...

  8. (初稿)SQL Server 复制(Replication)系列(2)——事务复制搭建

    原文:(初稿)SQL Server 复制(Replication)系列(2)--事务复制搭建 本文演示如何搭建最基本的事务复制. 环境准备: 虚拟机2台: 服务器名分别为RepA和RepB,RepA为 ...

  9. 第十六周翻译-SQL Server复制的阶梯:第1级 - SQL Server复制简介

    SQL Server复制的阶梯:第1级 -  SQL Server复制简介 作者:Sebastian Meine,2012年12月26日 翻译:赖慧芳 译文: 该系列 本文是Stairway系列的一部 ...

随机推荐

  1. 在浏览器下载pdf,或者txt文档是会直接打开

    window.location.href = url会直接打开,解释大概是因为浏览器自身可以解析.pdf或者txt.解决方法如下: 本来就要用a标签里面加上download属性的,结果发现不行,就算了 ...

  2. layui 单选框取消选中

    <ul> <li> <span class="time">17:18</span> <span class="typ ...

  3. Introduction of Generator in Python

    Python中生成器的原理与使用详解 原创牛大财有大才 发布于2018-09-05 14:36:38 0.range() 函数,其功能是创建一个整数列表,一般用在 for 循环中 语法格式:range ...

  4. php实现大视频上传

    本人在2010年时使用swfupload为核心进行文件的批量上传的解决方案.见文章:WEB版一次选择多个文件进行批量上传(swfupload)的解决方案. 本人在2013年时使用plupload为核心 ...

  5. luogu 2698 [USACO12MAR]花盆Flowerpot 单调队列

    刷水~ Code: #include<bits/stdc++.h> using namespace std; #define setIO(s) freopen(s".in&quo ...

  6. CopyOnWrite 个人理解以及应用

    缘由 最近在看<Redis 设计与实现>,看到Redis的执行bgsave生成dump.rdb是根据CopyOnWrite的 之前也不是很懂为啥要有CopyOnWrite这个东西 翻看文章 ...

  7. 【PowerOJ1744&网络流24题】方格取数问题(最小割)

    题意: n,m<=30 思路: [问题分析] 二分图点权最大独立集,转化为最小割模型,从而用最大流解决. [建模方法] 首先把棋盘黑白染色,使相邻格子颜色不同,所有黑色格子看做二分图X集合中顶点 ...

  8. Finer Resolution Observation and Monitoring -Global Land Cover更精细的分辨率观测和监测-全球土地覆盖

    http://data.ess.tsinghua.edu.cn/ 全球土地覆盖数据是了解人类活动与全球变化之间复杂互动的关键信息来源.FROM-GLC(全球土地覆盖的精细分辨率观测和监测)是首个使用陆 ...

  9. 【翻译】详解HTML5 自定义 Data 属性

    原标题:HTML5 Custom Data Attributes (data-*) 你是否曾经使用 class 或 rel 来保存任意的元数据,只为了使你的JavaScript更简单?如果你回答是的, ...

  10. winXP 系统下ubuntu-12.04 硬盘安装

    目地:实现XP ubuntu双系统,引导可选择. 出处:根查阅网络资料和自己的安装体检,记录如是. 系统版本:windowsXP  SP3   Ubuntu 12.04 工具资源:grup4dos 2 ...