《Replication的犄角旮旯》系列导读
Replication的犄角旮旯(一)--变更订阅端表名的应用场景
Replication的犄角旮旯(二)--寻找订阅端丢失的记录
Replication的犄角旮旯(三)--聊聊@bitmap
Replication的犄角旮旯(四)--关于事务复制的监控
Replication的犄角旮旯(五)--关于复制identity列
Replication的犄角旮旯(六)-- 一个DDL引发的血案(上)(如何近似估算DDL操作进度)
Replication的犄角旮旯(七)-- 一个DDL引发的血案(下)(聊聊logreader的延迟)
Replication的犄角旮旯(八)-- 订阅与发布异构的问题
Replication的犄角旮旯(九)-- sp_setsubscriptionxactseqno,赋予订阅活力的工具
---------------------------------------华丽丽的分割线--------------------------------------------
今天被群友问到复制环境中identity属性的问题。在此通过几个测试说明一下identity列是如何在复制环境中实现的;
以下测试均是基于SQLSERVER 2012 SP1下的事务复制环境;
先抛出几个测试目的;
1、identity列和not for replication的关系,发布端及订阅端何时添加not for replication属性
2、快照初始化、备份初始化、不初始化订阅对not for replication参数的依赖
3、如何添加not for replication,在哪添加not for relication,以及替代not for replication的方法
先解释一下not for replication
http://msdn.microsoft.com/zh-cn/library/ms174979.aspx
简单说,对于identity、外键约束、check约束,可以通过指定not forreplication避免订阅端写入数据失败;
测试开始:
先在同一个实例下创建两个库test_byxl_1、test_byxl_2,分别作为本次测试的发布库和订阅库;
test_byxl_1下创建tb_ident_1表,结构如下
1 create table test_byxl_1.dbo.tb_ident_1 (id int PRimary key identity ,name varchar(10))View Code
添加这个表的发布,只创建publication、添加article即可;
新闻热点
疑难解答