簡體   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