在Windows 2000 活动目录(AD)环境里,你可以使用站点(Site)把网络物理地划分开,从而优化AD复制。通过理解微软是如何在你的域里实现AD复制,你能够更有效地对把你的网络划分成AD站点,从而减少通过低速网络连接的网络流。这篇文章是关于活动目录站点的两篇系列文章的第一部分,在这篇文章里,我们要研究缺省的AD站点内(intra-site)复制的配置,以及信息如何被复制。
活动目录复制
在活动目录(AD) 域控制器(DC)安装到域里时,活动目录会建立缺省的复制模板,并且在活动目录之间自动建立起一个环形的复制拓扑,建立的依据是确保复制流量沿着最有效的路径进行。你可以沿着环的任意方向把变化复制到AD。
因为在AD里所有的DC的地位都相等,都包含可以写入的AD数据库备份,因此在实现多主机复制系统时,有一些潜在的挑战面对着微软。在你可能考虑到的问题里,有些是:
DC如何把复制流量控制在最小?
DC如何保持所有的数据库拷贝同步?
如果DC从两个复制伙伴得到相同的修改,会怎么样?
如果两个修改同时发生,会怎么样?
那么就让我们按顺序来看看这些问题。
DC如何把复制流量控制在最小?
为了把网络流保持在最小,AD的复制在每-属性(per-attribute )的基础上进行。简单地说,这就是指如果一个属性发生了变化(比如,用户的电话号码),那么只有这个小小的变化被复制到你的域里的其它DC上。你可以想象,AD的每属性复制,和把整个数据库拷贝都通过网络传递比起来,更加有效率,需要网络带宽也更少。
DC如何保持所有的数据库拷贝同步?
AD DC 使用一套更新顺序数字(USN)系统对彼此间流动的AD数据库的不同版本进行校验和同步。每当一个DC对它的数据库做了修改,它就用一个USN来标识这个修改。在它通知其它DC它有一个修改需要复制时,它还把与被修改的属性相关联的USN通知给其它DC。
每个DC都维护了一个表格,里面保存着它从环里它的每个复制伙伴那里收到的最高的USN数字。如果一个DC收到了一个修改的通知,而与修改相关联的USN值要比在它的表里的记载的USN值高,那么它就向复制伙伴请求所有插入的修改。你可以在图 A 和 图B 里看到这个过程。
图 A: 活动目录变化通知里包括更新顺序数字USN。
图 B: AD 数据库使用USN在多主机环境里控制同步。