AD 的 Replication
Active Directory 采用多主复制模型,同一对象可以在任一可写域控上修改,然后通过拓扑同步给其他域控。理解复制管线的关键有三个:
- 拓扑与站点链接:知识一致性由 KCC(Knowledge Consistency Checker)生成的拓扑保障;站点链接成本决定哪台域控之间优先复制。
- 更新跟踪:每条属性修改会生成 USN(Update Sequence Number)和 Originating DSA(源域控),跨域控同步时需要借助高水位线来比较谁落后。
- 冲突解决:若同一属性被并发修改,比较版本号(
version)、时间戳(timeCreated/timeChanged)和源域控 GUID,最终写入胜出的副本。
UTD Vector 的作用
- Up-To-Dateness Vector 是域控级别的高水位线表,记录 “我已经收到某域控的最大 USN”。
- 复制会话开始前,提供方会基于 UTD Vector 过滤已同步的条目,减少冗余流量。
- 如果域控长时间离线导致 UTD Vector 过旧,重新上线时会触发初始同步(full sync)。
常见调优与排障思路
- 使用
repadmin /showrepl检查最近一次复制时间、是否存在 pending replication。 repadmin /showutdvec可以打印 UTD 向量,快速识别落后的域控。- 日志 ID 2042(Event Viewer → Directory Service)提示域控超出 Tombstone 生命周期,需要执行强制同步或重建副本。
- 跨站点链路延迟大时,可调大
repadmin /options中的压缩、批次参数,或通过 RODC 减少写路径。
掌握这些信息后,可以更有底气地解释 “AD 为什么还没同步到其他站点” 这类问题,并且在扩容或异地容灾场景中做出合理规划。