Professional Documents
Culture Documents
排除AD复制故障的6个基本工具
排除AD复制故障的6个基本工具
当它不能正常运行的时候我们应该做
些什么?
复制概述
AD 是一个数据库,默认地,每个域控制器(DC)在它的“\winnt\ntds”文
件夹中以 ntds.dit 文件形式存储这个数据库的一个副 本。AD 数据库从逻辑上划
分为三个目录分区,又称为命名上下文(Naming Context,NC),它们分别是架
构 NC(Schema NC)、配置 NC(Configuration NC)以及域 NC(Domain NC)。森林中所
有的 DC 都拥有同样的架构 NC 和配置 NC,因为这些信息是在森林范围被定义的,
而在一个 AD 域中的每个 DC 上拥有本域的域 NC 的同样的副 本。如果 DC 被指派为
全局编录(GC)服务器,那么这台 DC 同时包含森林中其他域的域 NC 的一部分副
本,这部分副本包括所有来自个域中的对象,但仅仅是属 性的一个子集。
如果有些 DC 之间没有高速连接,你就需要创建多个站点,分离的站点之间
的复制称为站间复制。AD 管理员使用 Active Directory 站点与管理控制台(MMC)
管理单元来创建站点链路,它提供了站点之间进行数据复制的通道。在 AD 管理
员建立这些通道之后,KCC 在链 接的站点之间创建连接对象。典型情况下,并
不是所有的 DC 共享所有的信息(比如,各个域中的 DC 可能维护不同的数据)。因
此,KCC 可能需要建立多个连接 对象来确保在整个企业中的每个 NC 被完全复制。
在图 1 中显示了一个站间连接对象的例子,站点 A 与站点 B 通过一个手工创建
的站点链路连接。在这个例子中, KCC 已经创建了两个单向连接对象复制来自
同一个域中二台 DC 之间的三个 NC。
图 1
桥头服务器(bridgehead server)是复制拓扑中另一个组件,如果你使用过
Microsoft Exchange 服务器,你应该熟悉这个服务器的角色。为了增加复制的
有效性,KCC 不会对一个站点内所有的 DC 与另一个站点内所有的 DC 之间创建单
个连 接对象,相反,KCC 在两台桥头服务器(每个站点中一台)之间使用存储并
转发的信息复制机制。然后桥头服务器使用站内复制把信息复制到它所在站点的
其余 DC 上。关于桥头服务器的更多信息,请参见附文《桥头服务器》 。
复制得到了什么?
在 AD 复制拓扑内部,复制伙伴以一种高水印(high-watermark)值的方式来保持
他们对来自源 DC 最近更新的跟踪。当一个目的 DC 从源 DC 请求更新时,为返回
更新,目的 DC 会把它的高水印值发送给源 DC,源 DC 以这个高水印值作为一个
基准,仅发送高水印值高于这一基准的目录对象到目的 DC,因此减少了网络线
路中不必要的复制数据流量。
最新矢量(Up-to-dateness Vector)与高水印值协同工作可以把复制数据量
降到最小。二者的区别是高水印值考虑的是对象,最新矢量考虑的是属性。在一
次复制数据交换期间,一台目 的 DC 发送它的最新矢量到源 DC,源 DC 使用这个
值来判断目的 DC 对一个特定的属性是否有最新的值。如果值是最新的,源 DC 就
会从它发送到请求数据的目的 DC 的数据中将这一属性过滤掉。
在你部署 AD 之后,你需要在你的工具百宝箱中装载解决任何存在的问题所
必须的实用程序。Microsoft Windows 2000 Resource Kit 中包含许多这样的工
具,还可以在 Windows 2000 Server CD-ROM 的“\support\tools”文件夹(即
Windows 2000 Server 支持工具)中找到大约 50 个这样的程序。为了解决可能的
复制问题,你有时需要同时使用这些工具中的其中几个。
事件查看器。Windows 默认的事件查看器位于“开始”*“程序”*“管理工
具”中,事件查看器一般在发生问题的第一时间内告诉你一些基本的 情况。在
一个 AD 部署过程中,DC 有一个称为目录服务的新的日志类型。为即时跟踪最新
复制相关的事件,你应该监视你 DC 上的目录服务日志。尽管你能够连接 到其他
DC 来查看他们的日志,但事件查看器一次只能显示一个服务器的日志,为获得
一份包括来自你所有 DC 上复制相关的事件项目的报告,我推荐你使用复制监
视器程序。
Replmon
这个程序打开时没有与任何服务器连接,你需要手工添加希望监视的服务
器。一个快速添加服务器的方法是创建一个包含服务器列表的.ini 文件,每 一
行一个名称。然后,从 Replmon 菜单条上单击“File”*“Script”,并找到你
创建的.ini 文件,单击“open”,Replmon 会显 示你的 DC 及 DC 所拥有的 NC。
在图 2 所示的例子中,我添加了 testdc01 这台服务器,在 testdc01 项目下面,
你能够看到这个 DC 所拥有的三个 NC。为查看你能够使用 Replmon 所实施的任务,
如图 2 所示那样,右击服务器名称。你应该熟悉这里的各个你需要排除 NC 复制
问题时能够提供在事件中的 任务及信息。
图 2
如果你运行 Dcdiag,会产生大量的信息供你进行详细审查。我推荐你使用这样
的语法:
Repadmin /?
Repadmin /showreps