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