命名上下文正在删除或未从指定服务器复制

本文提供了解决 Active Directory 复制错误(8452)的解决方法。 本文仅适用于技术支持代理和 IT 专业人员。 如果你是家庭用户并查找问题帮助,请访问 “Microsoft社区”。

原始 KB 数: 2023704

现象

  1. DCDIAG 报告 Active Directory 复制测试失败并出现错误状态代码(8452): 命名上下文正在删除或未从指定服务器复制。

    测试服务器: <站点名称><目标 dc 名称>
    开始测试:复制
    复制检查
    [复制检查,<目标 DC 名称>] 最近的复制尝试失败:
    从 <源 DC> 到 <目标 DC>
    命名上下文: <目录分区 DN 路径>
    复制生成了错误(8452):
    命名上下文正在删除或未从指定服务器复制。
    失败发生在 <日期><时间>。
    上次成功发生在 <日期><时间>。
    自上次成功以来发生了 3 次失败。

  2. REPADMIN.EXE报告上次复制尝试失败,状态为 8452。

    REPADMIN 通常引用五种状态的命令包括但不限于:

    • REPADMIN /SHOWREPS
    • REPADMIN /REPLSUM
    • REPADMIN /SYNCALL

    下面显示了描述从 CONTOSO-DC2 到 CONTOSO-DC1 的入站复制失败且复制访问被拒绝错误的示例输出REPADMIN /SHOWREPS

     Default-First-Site-Name\CONTOSO-DC1  
      DSA Options: IS_GC  
      Site Options: (none)  
      DSA object GUID: b6dc8589-7e00-4a5d-b688-045aef63ec01  
      DSA invocationID: b6dc8589-7e00-4a5d-b688-045aef63ec01
    
     ==== INBOUND NEIGHBORS ======================================
    
     DC=contoso,DC=com  
     Default-First-Site-Name\CONTOSO-DC2 via RPC  
     DSA object GUID: 74fbe06c-932c-46b5-831b-af9e31f496b2  
     Last attempt @ <date> <time> failed, result 8452 (0x2104):  
     The naming context is in the process of being removed or is not replicated from the specified server.  
     <#> consecutive failure(s).  
     Last success @ <date> <time>.
    
  3. Active Directory 站点和服务中的“立即复制 ”命令返回以下错误:

    命名上下文正在删除或未从指定服务器复制。

    右键单击源 DC 中的连接对象并选择 复制现在 失败,并出现上述错误。 屏幕上的错误消息文本如下所示:

    对话标题文本:复制现在对话框消息文本:尝试将命名上下文 <%directory 分区名称%>从域控制器<源 DC 同步到域控制器<目标 DC>> 期间发生以下错误:命名上下文正在从指定服务器中删除或未复制。

    操作不会继续
    对话框中的按钮:确定

  4. NTDS KCC、NTDS 常规或 Microsoft-Windows-ActiveDirectory_DomainService 事件在目录服务事件日志中记录五种状态。

    通常引用 8524 状态的 Active Directory 事件包括但不限于:

    事件 Source 事件字符串
    NTDS General 1586 PDC 的检查点失败。 检查点过程将在四小时内再次重试。 如果将此计算机提升为下一个成功的检查点之前,可能会将安全数据库完全同步到下层域控制器。 返回的错误是:命名上下文正在删除或未从指定服务器复制。

原因

此错误最常发生在以下复制拓扑不同时:

  • 正在启动复制的 DC 中的复制拓扑。
  • 在目标 DC Active Directory 副本中定义的复制拓扑。

通过以下方法修改 Active Directory 林中的复制拓扑时,自然会发生此错误:

  • 正在从林中添加或删除的新分区。 例如,升级或降级域中第一个/最后一个 DC。 或者添加/删除应用程序分区,包括默认 DNS 应用程序分区。

  • 在现有 DC 上添加或删除目录分区(即全局目录的升级/降级或添加/删除应用程序分区)。

  • 复制拓扑或设置中的更改:

    • 推广新的 DC
    • 现有 DC 降级
    • 对首选/提名桥头的更改
    • 生成备用复制路径以响应复制失败或脱机 DC
    • 网站和网站链接更改。

此错误可能是林中发生上述更改的暂时性错误。 它保持暂时性,直到每个目标 DC 从中复制的源 DC 和分区集通过触发复制操作来复制入站。

当复制失败阻止林中拓扑更改的端到端复制时,此错误可能持久。

此错误最常出现在由远程 REPADMIN.EXE(特别是 /SYNCALL)或 DSSITE 中的“立即复制”命令触发的复制方案中。MSC,其中 DC 触发复制上的 Active Directory 副本具有不同于目标 DC 在其 Active Directory 副本中定义的分区中复制的源 DC 列表。

NTDS 复制事件 1586 在以下情况下发生:

   域的主域控制器(PDC)灵活单主操作(FSMO)角色已被查获或转移到不是以前角色持有者的直接复制伙伴的域控制器。

在极少数情况下,错误可能是由属性(如 hasMasterNCsmsds-hasMasterNCs)中的损坏引起的。

本文的“详细信息”部分包含有关本文“症状”部分中列出的诊断和管理工具生成 8452 错误的原因的说明。

总之,如果满足以下任一条件,则会发生错误 8452:

  1. 当 DC1 <- DC2 复制为命名上下文 (NC)启动时,DC1 上没有来自 DC2 的 NC 的副本链接。
  2. 当 DC1 <- DC2 复制为 NC 启动时,NC 正在 DC2 上删除。
  3. 在混合域环境中,PDC FSMO 角色从 DC2 传输到 DC1,但在 DC1 上没有来自 DC2 的副本链接。

解决方法

  1. Wait。 如前所述,这种情况是暂时性的,通常不保证故障排除。

    假设“原因”部分中列出的类型的复制拓扑更改正在 Active Directory 林中发生。 在这种情况下,请等待错误条件及时更正自身。

  2. 避免在域控制器开始复制之前使用 repadmin /syncall 命令和等效项,以及要复制的目标 DC,以同意复制源 DC 和目录分区。

  3. 在正确的位置进行原始更改。

  4. 根据需要推送和拉取更改连接对象和分区更改。

  5. 直接转到。

    如果 DSSITE 时,立即将命令从 \DC3 复制到 \DC2。MSC 管理单元从 \DC1 的控制台运行,但专注于 \DC4,切断中间人。

    如果错误是由根本原因 3 引起的,则在用户提供正确的输入后,错误不会发生。 例如,如果第 1 个方案为 3,则如果用户输入正确的 <src DC>,以便在 dest DC> 上<为 NC> 提供来自 src DC> <的副本链接<,repadmin /replicate该命令将成功执行。

  6. 解决阻止端到端复制的复制失败。

  7. REPADMIN /REPLICATE。

  8. NTDS 复制事件 1586。

    对于 NTDS 复制事件 1586,请将 DPC 角色传输到 Active Directory 域控制器,该域控制器当前是以前的域 PDC 的直接复制伙伴。

详细信息

repadmin /syncall

repadmin /syncall 操作将导致 DC 从其所有源复制伙伴开始复制,并使源复制伙伴从其所有源复制伙伴开始复制,依此等。

例如,假设我们有一个复制拓扑 DC1 <- DC2 <- DC3。 repadmin /syncall 在 DC1 上将启动以下复制:DC2 <- DC3 和 DC1 <- DC2。

在这种情况下,可能会观察到错误 8452:

案例 1:更改复制拓扑以从 DC4 进行 DC2 入站复制,使当前拓扑变为 DC1 <- DC2 <- DC4。

如果在了解 DC2 <- DC4 拓扑更改到 DC1 之前调用 repadmin /syncall DC1,则syncall操作将启动 DC2 <- DC3 复制,因为 DC1 仍在本地存储旧的复制拓扑。 目前,在 DC2 上,KCC 已从 DC4 创建副本链接,并从 DC3 中删除了副本链接。 因此无法执行来自 DC2 <- DC3 的复制,并且操作记录错误 8452。

案例 2:假设 DC3 上的 NC 在调用 repadmin /syncall <the NC> DC1 时正在删除。 DC2 <- DC3 复制将像以前一样启动。 由于 DC3 上的 NC 正在删除,因此它不是有效的复制源,因此将观察到错误 8452。

Active Directory 站点和服务(DSSITE。MSC) -> 立即复制

Active Directory 站点和服务管理单元 DSSITE。MSC 使用存储在其本地 AD 副本中的拓扑信息。

给定复制拓扑 DC1 <- DC2 <- DC3,DC2 的 NTDS 设置对象下存在连接对象。 此连接对象表示 DC2 从 DC3 入站复制 NC(或多个 NC)的路由。 如果右键单击此连接对象并选择 “立即复制”,我们将在 DC2 上启动 DC2 <- DC3 复制。

与示例中 REPAMIN /SYNCALL 一样,也有两种情况可能会发现错误 8452。

案例 1:假设我们在 DC2 上更改复制拓扑,使其从 DC4 进行入站复制。 新的复制拓扑为 DC1 <- DC2 <- DC4。 在知道此拓扑更改到 DC1 的出站复制之前,DC1 上的拓扑仍然是 DC1 <- DC2 <- DC3 的旧拓扑。

启动侧重于 Active Directory 的 DC1 副本的 Active Directory 站点和服务 UI 仍显示 DC2 具有来自源 DC3 的入站连接对象。 右键单击 DC2 中的 DC 入站连接对象,现在选择复制将在 DC2 上启动 DC2 <- DC3 复制。 但是,DC2 上的 KCC 已从 DC3 中删除了从 DC3 复制到 DC2 的副本链路入站复制,并创建了指向 DC2 的副本链接。 由于无法执行复制尝试 DC2 <-> DC2,因此请求失败错误 8452。

案例 2:假设在右键单击连接对象时删除 DC3 上的 NC,然后选择 “立即 在 DC1 上复制”以启动此 NC 的 DC2 <- DC3 复制。 由于 DC3 上的 NC 正在删除,因此 DC3 不是有效的复制源。 因此,我们将看到错误 8452。

repadmin /replicaterepadmin /sync

触发器replicaterepadmin (或sync) 命令会立即从源 DC 将命名上下文(目录分区)复制到目标 DC。 它的语法为: repadmin /replicate <dest DC> <src DC> <replicated NC>.

在 (或sync) 命令用于启动复制时repadmin /replicate,我们将触发错误 8452:

案例 1:<src DC> 参数不是复制 NC> 的 dest DC> <的<复制伙伴。 例如,我们必须复制拓扑 DC1 <- DC2 <- DC3,其中 DC2 从 DC3 同步 NC。 如果我们调用 repadmin /replicate DC2 DC1 NC,则会启动复制 DC2 <- DC1。 因为在 DC2 上,我们没有来自 NC1 的副本链接,因此无法执行此复制,我们将收到错误 8452。

案例 2:调用 repadmin /replicate <dest DC> <src DC> <the NC>src DC 时,NC 正在删除,因此 <src DC> 不是有效的复制源。 因此,我们将看到错误 8452。

DCDIAG

showreplshowreps) 命令 repadmin 报告目标 DC 具有入站连接对象的每个源 DC 的复制状态。 dcdiag 的复制测试检查 DC 之间的及时复制。 如果出现错误 8452 repadmin /showrepldcdiag /test:replications 报告,原因是发生上次复制时,复制的 NC 正在源 DC 上删除。

降级

将返回另一个DRAERR_NoReplica错误的方案。 当我们降级 DC 时,它将使用 DC 定位符查找要复制到的本地更改的 DC。 如果找到的 DC 未直接与被删除的 DC 一起复制, 则会返回DRAERR_NoReplica ,并调用 DC 定位符以查找目标 DC。 在此方案中,不会记录错误,因此不会观察到错误。

数据收集

如果需要Microsoft支持方面的帮助,建议按照使用 TSS 收集 Active Directory 复制问题的信息中所述的步骤收集信息。