[英]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你的种子/增量
这为8台服务器提供了每台服务器500,000,000个
或者:添加名为ServerID的第二列以提供复合键,对ID列使用NOT FOR REPLICATION
例如,这可以扩展到256个服务器,用于tinyint,每个服务器有2 ^ 32行
无论哪种方式都有效......
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.