Windows 2000活动目录的复制
2008-11-27 12:45:08 来源:WEB开发网每个DC都维护了一个表格,里面保存着它从环里它的每个复制伙伴那里收到的最高的USN数字。如果一个DC收到了一个修改的通知,而与修改相关联的USN值要比在它的表里的记载的USN值高,那么它就向复制伙伴请求所有插入的修改。你可以在图 A 和 图B 里看到这个过程。
图 A: 活动目录变化通知里包括更新顺序数字USN。
图 B: AD 数据库使用USN在多主机环境里控制同步。
更多问题
如果DC从两个复制伙伴得到相同的修改,会怎么样?
就象我们前面讲过的,在一个域里的AD 的DC使用环形拓扑进行复制。您能会想,有没有可能,一个DC从不止一个复制伙伴那里接收到相同的目录修改呢?为了能区别开这些重复,防止修改在复制环里传播得没完没了,AD不但使用USN对不同数据库版本进行同步,而且还用它来确定“源头写”。“源头写”是在一台DC本地进行的修改,通过复制得到的个性不是源头写。源头写的USN被写入属性,和属性一起被复制。
为了说明这个机制是如何作用的,让我们来看一个简单的例子:假如名为 Astro的DC对某个属性做了修改。它就把新的USN给了这个修改。在这个例子里,我们假设USN为516。然后它把新值写到属性里,同时给属性值把USN代码写到叫做最新状态矢量的一个东西里。Astro这个DC把修改复制给它的两个复制伙伴:名为George 和 Elroy的DC。
为了简化,我们假设在我们的域里只有Astro、 George、和 Elroy 这三个DC。因为它们使用环形的拓扑,Elroy并不知道 Astro 已经把相同的个性给了George,所以它还想把修改复制到George。但是,在复制发生之前,George 和 Elroy 要比较属性里的最新状态矢量,看到它们都被标记成来自Astro,所以就阻止George 从Elroy拉修改。虽然不拉修改, George 仍用Elroy当前的USN来修改自己当前的USN表,好让Elroy在下一个复制周期里,不再把变化传给George。
更多精彩
赞助商链接