[英]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.