為了盡可能降低AD DS數(shù)據(jù)復(fù)制的延遲時(shí)間,在不同的域控之間復(fù)制時(shí),途經(jīng)的域控不能超過(guò)三臺(tái)。例如,從DC1開(kāi)始復(fù)制,經(jīng)過(guò)DC2,DC3到達(dá)DC4等。而且DC1并不會(huì)同時(shí)通知自己的所有直接復(fù)制伙伴,而是每隔三秒,依次通知自己的復(fù)制伙伴,這樣可以防止DC1負(fù)擔(dān)過(guò)大。即使出現(xiàn)新增域控的情況,KCC也會(huì)遵循上述規(guī)則,重新創(chuàng)建復(fù)制拓?fù)浣Y(jié)構(gòu),保證從源域控到目標(biāo)域控之間的域控?cái)?shù)量不超過(guò)兩臺(tái)。
對(duì)于同一個(gè)站點(diǎn)中的所有控制,往往通過(guò)高速網(wǎng)絡(luò)連接,這可以保證快速高效地在彼此之間復(fù)制AD DS數(shù)據(jù)庫(kù)信息。通過(guò)更改通知的方法,當(dāng)同一站點(diǎn)中的某臺(tái)域控的AD DS數(shù)據(jù)庫(kù)出現(xiàn)變動(dòng)時(shí),系統(tǒng)會(huì)等待15秒才會(huì)通知自己的直接復(fù)制伙伴。收到通知的域控如果需要同步變更信息,會(huì)發(fā)送更新數(shù)據(jù)的請(qǐng)求給源域控,當(dāng)源域控收到并確認(rèn)請(qǐng)求后,就會(huì)通過(guò)KCC程序來(lái)復(fù)制所需的數(shù)據(jù)。
但是,對(duì)于用戶(hù)賬戶(hù)密碼變動(dòng)、賬戶(hù)鎖定策略變更、賬戶(hù)變動(dòng)、密碼策略變化等情況,系統(tǒng)會(huì)利用緊急復(fù)制機(jī)制,立即通知自己的復(fù)制伙伴執(zhí)行AD DS數(shù)據(jù)的更新操作。此外,當(dāng)KCC在創(chuàng)建復(fù)制拓?fù)浣Y(jié)構(gòu)時(shí),會(huì)針對(duì)AD DS數(shù)據(jù)庫(kù)中的不同目錄分區(qū),來(lái)創(chuàng)建不同的復(fù)制拓?fù)浣Y(jié)構(gòu)。例如,對(duì)于DC1,當(dāng)復(fù)制AD DS數(shù)據(jù)庫(kù)中的配置目錄分區(qū)時(shí),DC2可能使其直接復(fù)制伙伴。當(dāng)復(fù)制應(yīng)用程序目錄分區(qū)時(shí),DC6可能使其直接復(fù)制伙伴。
在復(fù)制AD DS數(shù)據(jù)庫(kù)時(shí),可能因?yàn)楦鞣N原因出現(xiàn)沖突的情況。例如,多個(gè)具有系統(tǒng)管理員權(quán)限的用戶(hù)在不同的域控上建立相同的對(duì)象(例如賬戶(hù)名等),因?yàn)锳D DS數(shù)據(jù)庫(kù)中的很多數(shù)據(jù)是利用多主機(jī)復(fù)制模式執(zhí)行復(fù)制操作的,任何一臺(tái)域控中的AD DS信息發(fā)生變動(dòng),都會(huì)自動(dòng)更新到其他的域控中。這樣,產(chǎn)生復(fù)制沖突的情況就在所難免了。為了有效解決該問(wèn)題。活動(dòng)目錄域服務(wù)使用了STAMP戳記這一方法來(lái)化解矛盾。戳記由版本號(hào),修改事件,域控的GUID等參數(shù)組成。每一個(gè)屬性值的版本號(hào)初始值為1,當(dāng)每次修改該屬性值時(shí),版本號(hào)數(shù)值就會(huì)增加。
當(dāng)屬性值被修改時(shí),原始的時(shí)間即作為修改時(shí)間被保存起來(lái)。當(dāng)操作者在某臺(tái)域控上執(zhí)行修改操作時(shí),原始域控的GUID值即是域控的GUID參數(shù)值。所謂GUID是全局惟一標(biāo)識(shí)符,每臺(tái)計(jì)算機(jī)都擁有惟一的GUID值。當(dāng)操作者修改了AD DS數(shù)據(jù)庫(kù)中的某個(gè)對(duì)象的屬性信息后,與該數(shù)據(jù)值對(duì)應(yīng)的戳記就會(huì)發(fā)生變化。當(dāng)出現(xiàn)AD DS復(fù)制沖突時(shí),是按照戳記值最高的為準(zhǔn)。在兩臺(tái)域控中,目標(biāo)屬性值的版本號(hào)誰(shuí)最高,就以誰(shuí)為準(zhǔn)。如果兩者的版本號(hào)信息相同,就比較兩者的修改時(shí)間,誰(shuí)的修改事件靠后就以誰(shuí)為準(zhǔn)。如果修改時(shí)間相同,就繼續(xù)比較兩者的原始域控制器的GUID值,誰(shuí)的GUID值高就以誰(shuí)為準(zhǔn)。
例如,當(dāng)兩位管理員在不同的域控上分別修改了A賬戶(hù)的辦公室部門(mén)信息值。 執(zhí) 行 和“repadmin /showmeta CN=A賬戶(hù),OU=XXX部 門(mén),DC=XXX,DC=com”命令,在項(xiàng)目列表中的“版本屬性”列中“physicalDelivery OffName”的版本號(hào)信息,其中的“A賬戶(hù)”表示具體的賬戶(hù)名,“XXX部門(mén)”標(biāo)識(shí)具體的部門(mén),“xxx.com”標(biāo)識(shí)具體的域名。可以看到,在這兩臺(tái)域控上部門(mén)屬性的版本號(hào)的變化是相同的,所以需要比較兩者的修改時(shí)間,誰(shuí)修改的事件靠后就已誰(shuí)的為準(zhǔn)。
有時(shí)會(huì)出現(xiàn)某個(gè)管理員在某臺(tái)域控上,將AD DS數(shù)據(jù)庫(kù)中的某個(gè)OU刪除,但是別的管理員卻并不知情,繼續(xù)在該OU中創(chuàng)建新的賬戶(hù),或者將其他OU中的賬戶(hù)移動(dòng)到該OU中,因?yàn)樵揙U已經(jīng)消失,所以系統(tǒng)會(huì)將這些賬戶(hù)信息自動(dòng)存儲(chǔ)到名為“LostAndFound”文件夾中。如果兩個(gè)管理員在兩臺(tái)域控上分別創(chuàng)建相同的賬戶(hù)名,那么這兩個(gè)賬戶(hù)名其實(shí)都會(huì)保存下來(lái)。所不同的是,根據(jù)戳記值(版本號(hào),修改事件,域控GUID)來(lái)確定優(yōu)先級(jí)較高的賬戶(hù)名,將其作為正常的賬戶(hù)信息使用,對(duì)于優(yōu)先級(jí)較低的賬戶(hù),其賬戶(hù)全名會(huì)按照具體的格式進(jìn)行修改,具體的格式為“對(duì)應(yīng)的相對(duì)可分辨名稱(chēng) 通用名:對(duì)象的GUID”。