繁体   English   中英

SQL Server 2000/2005标识列+复制

[英]SQL Server 2000/2005 identity column + replication

我已经查看了一些资源,只想澄清并得到一个意见。

首先,为了完全避免任何问题,我们可以不打扰使用标识列作为主键,而是让它们自己生成,并且只是将这些值复制到两个方面,假设它们在创建的任何时候始终是唯一的。

出于这个问题的目的,我正在谈论解决全局访问问题的2种或更多种方式复制,我们确实有标识列。

现在我们正在设置事务复制,并且两个数据库应该相互复制。

据我所知,你为每个数据库服务器分配一系列种子值,它会使用这些,你知道你给出了不交叉的范围的唯一原因。 那么这意味着在复制过程中这些值是否会插入到种子列中?

因此,如果您在每个服务器插入10行后将范围1-10和11-20分配给2个服务器,那么在两个数据库中都会有种子1-20?

有一个选项“ NOT FOR REPLICATION ”可以应用于标识列(以及触发器和其他约束)。

在您的示例中,server1将播种1-10,但只接受复制11-20。

设置种子的几种方法:

要么:像这样设置NOT FOR REPLICATION你的种子/增量

  • 种子1,增量2
  • 种子2,增量2
  • 种子-1,增量-2
  • 种子-2,增量-2
  • 种子1000000001,增量2
  • 种子1000000002,增量2
  • 种子-1000000002,增量-2
  • 种子-1000000001,增量-2

这为8台服务器提供了每台服务器500,000,000个

或者:添加名为ServerID的第二列以提供复合键,对ID列使用NOT FOR REPLICATION

例如,这可以扩展到256个服务器,用于tinyint,每个服务器有2 ^ 32行

无论哪种方式都有效......

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM