Active Directory 复制错误 1127:访问硬盘时,即使重试后磁盘操作也失败

本文介绍 Active Directory 复制失败,出现 Win32 错误 1127 的问题:"访问硬盘时,即使重试后磁盘操作也失败。"

适用于:  Windows Server 2012R2
原始 KB 编号:   2025726

症状

本文介绍在 Win32 错误 1127 的情况下 AD 操作失败时出现症状、原因和解决步骤:"访问硬盘时,即使重试后磁盘操作也失败。"

  1. 新域控制器的 DCPROMO 升级失败,出现错误 1127:访问硬盘时,即使重试后磁盘操作也失败

    DCPROMO 中显示的屏幕错误为:

    对话框标题文本:Active Directory 安装向导
    消息文本:

    操作失败,原因是:
    Active Directory 无法从远程域控制器复制 <DN path of failing partition> 目录分区 <fully qualified computer name of helper DC> 。
    "访问硬盘时,即使重试后磁盘操作也失败。" DCPROMO。LOG 包含以下文本:
    [INFO]复制 <partition name> 目录分区
    [INFO]错误 - Active Directory 无法从远程域控制器复制 <partition DN> 目录分区 <helper DC> 。 (1127)
    [INFO]返回的 1127 的 NtdsInstall <DNS domain>
    [INFO]DsRolepInstallDs 返回 1127 [ERROR] 未能安装到目录服务 (1127)

  2. DCDIAG 报告 Active Directory 复制测试失败,错误状态为 (1127) :访问硬盘时,即使重试后磁盘操作也失败

    DCDIAG 的示例错误文本如下所示:

    测试服务器: <site><DC name>
    开始测试:复制
    * 复制检查
    [Replications Check, <DC name> ]最近的复制尝试失败:
    从 <source DC> 到 <destination DC>
    命名上下文:DC=<DN path>
    复制在 1127 (时) :
    访问硬盘时,即使重试后磁盘操作也失败。
    失败发生在 <date> <time> 上。
    最后一次成功发生在 () | <date>.

  3. REPADMIN.EXE报告上次复制尝试失败,状态为 1127

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

    • REPADMIN /REPLSUM
    • REPADMIN /SHOWREPL
    • REPADMIN /SHOWREPS
    • REPADMIN /SYNCALL
  4. Active Directory 站点和服务中的"现在复制"命令 (DSSITE。MSC) 失败,并出现屏幕错误"访问硬盘时,即使重试后磁盘操作也失败"

    对话框标题:现在复制
    消息文本:尝试从域控制器同步命名上下文期间发生 <DNS name of directory partition> 以下错误 <source DC>
    到域控制器 <destination DC> :
    访问硬盘时,即使重试后磁盘操作也失败。
    此操作不会继续。

  5. 目录服务事件日志中的事件引用错误状态 1127

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

    事件源和事件 ID 消息字符串
    NTDS KCC 1926 尝试建立到具有以下参数的只读目录分区的复制链接失败
    NTDS 复制 1084 内部事件:Active Directory 无法用从以下源域控制器收到的更改更新以下对象。 这是因为在域控制器上对 Active Directory 应用更改期间发生错误。
    NTDS 复制 1699 本地域控制器未能检索为以下目录分区请求的更改。 因此,它无法将更改请求发送到位于以下网络地址的域控制器。
    NTDS Replication 2108 此事件包含之前已记录的 1084 事件的 REPAIR PROCEDURES。 此消息指示此复制目标上 Active Directory 数据库的一致性存在特定问题。 将复制的更改应用于以下对象时发生数据库错误。 数据库包含意外内容,导致无法做出更改。
  6. NTDS 复制事件 2108 可能记录在目录服务事件日志中,并记录对象、源 DC 和 jet 错误,这些错误触发了屏幕错误、记录的事件和诊断工具输出中的 1127 状态日志记录。

    状态为 1127 的 NTDS 复制事件 2108 中已知的 Jet 错误包括但不限于:

    小数 (Jet) 符号错误 错误字符串
    -510 JET_errLogWriteFail 写入到日志文件
    -1018 JET_errReadVerifyFailure 数据库页上的校验和错误
    -1019 JET_errPageNotInitialized 空白数据库页
    -1021 JET_errDiskReadVerificationFailure 从文件 IO ERROR_CRC的操作系统
    -1022 JET_errDiskIO 磁盘 IO 错误
    -1605 JET_errKeyDuplicate 非法重复键
  7. NTDS ISAM 事件可能记录在目录服务事件日志中,指示是否存在与 1127 状态相关的 jet 错误,这些错误出现在其他屏幕上的错误、记录的事件和诊断工具输出中

    事件源 + 事件 ID 事件文本
    NTDS ISAM 474 从文件偏移位置读取的数据库页 () , () 验证失败,无法验证页面校验 <drive:\path\ntds.dit> <decimal offset> <hex offset> <decimal page size> <hex page size> 和不匹配...。读取操作将失败 <decimal jet error> <hex jet error> , () 。 ). 如果此条件仍然存在,请从以前的备份中还原数据库。 此问题可能是由于硬件故障。 请与硬件供应商联系,以进一步帮助诊断问题。
    NTDS ISAM 475 从文件偏移位置读取的数据库页 () , () 验证失败,出现页码 <drive:\path\ntds.dit> <decimal offset> <hex offset> <decimal page size> <hex page size> 不匹配...。读取操作将失败 <decimal jet error> <hex jet error> , () 。 ). 如果此条件仍然存在,请从以前的备份中还原数据库。 此问题可能是由于硬件故障。 请与硬件供应商联系,以进一步帮助诊断问题。

原因

Active Directory 无法写入 Active Directory 数据库或日志文件。 根本原因包括:

  1. 本地计算机上软件干扰 Active Directory 将更改写入 Active Directory 数据库和/或日志文件的能力
  2. 磁盘子系统中存在缺陷,包括主板/驱动程序控制器、固件、驱动程序、物理驱动器。

解决方案

  1. 在目录服务事件日志中查找 NTDS 复制事件 1084 事件

    对于记录 1127 状态的 DC,请打开目录服务事件日志,并重点关注 NTDS 复制事件 1084。

    NTDS 复制事件 1084 指示 Active Directory 无法将更新写入到其本地 Active Directory 副本中的对象。

    事件 1084 中的元数据标识 (1.) DN 路径 (因此标识无法更新的对象主机分区) 、 (2.) 有关对象的 objectGUID 和 (3.) 发送更新的源 DC 的完全限定 CNAME 记录

  2. 查找每个 NTDS Replication 1084 事件之后立即记录的 NTDS 复制事件 2108,并确定 2108 事件记录 jet 错误。

    NTDS 复制事件 2108 是 NTDS Replication 1084 事件的"用户操作"。

    对于记录的每一个 NTDS 复制 1084 事件,目录服务事件日志中都应记录相应的 NTDS 复制 2108 事件,该事件引用 (1.) 相同的对象 DN 路径和 (2.) objectguid 和 (3.) 源 DC 记录在上一个 NTDS Replication 1084 事件和一个 jet 错误(用于定义/确定原因的范围以及用于解决错误条件的恢复计划)。

  3. 对 NTDS 复制事件 2108 中记录的 Jet 错误执行行动计划:

    如果下表列出了 NTDS 复制事件记录的 Jet 错误,请执行用户操作,否则请跳到步骤 #4:

    小数 (Jet) 符号错误 + 错误字符串 用户操作
    -510 JET_errLogWriteFail /
    写入到日志文件
    目标 DC 上发生日志写入失败。

    检查目标 DC 上的磁盘、分区和文件系统运行状况。

    检查可能在 Active Directory 日志文件(如目标 DC 上的防病毒软件)上创建锁定的软件。

    查看重启后问题是否仍然存在或尝试干净启动

    方法 1:停止对文件系统中的文件创建锁定并专门关注防病毒软件的服务。

    方法 2:在操作系统启动期间按 F8,保险箱网络模式"。

    方法 3:禁用非启动相关第三方服务。 重新启动。

    Windows键 + R -> MSCONFIG -> Services 选项卡 - >隐藏所有 Microsoft
    服务 ->第三方服务禁用复选框

    Windows键 + R -> MSCONFIG -> 启动"选项卡 - >隐藏所有 Microsoft
    服务 ->单击"全部禁用"
    -1018 JET_errReadVerifyFailure /
    数据库页上的校验和错误
    DB 已损坏

    硬件故障导致的错误。

    评估磁盘堆栈,包括主板/控制器、固件、连接电缆和物理驱动器,并联系相关供应商,了解已知问题。 将当前配置与供应商参考配置进行比较。

    评估问题是可以通过最新的固件更新解决,还是由最近的固件更新触发。

    如果一些 DCS 记录 -1018,而同一环境中的其他 DC 不记录 ,请查找硬件配置的差异。

    无法通过 NTDSUTIL 或 ESENTUTL 中的完整性检查或语义数据库分析来恢复或修复记录此错误的数据库。

    脱机碎片整理解决了不太可能由索引一致性问题导致的问题。

    尝试脱机碎片整理,否则,还原在损坏日期之前的系统状态备份,或强制降级,执行完整的元数据清理,然后重新升级。 如果显示 -1018 错误,请重复执行,直到硬件根本原因得到解决。

    一个客户报告,仅在使用板载 raid 控制器的计算机上,在同一虚拟主机上运行的虚拟化 DCS 上发生 jet 错误 -1018s。 当前思路是 UPS 缺少足够的电源,无法让板载 raid 控制器在断电后将更改提交到磁盘。 解决方法是配置 UPS 软件以在断电时关闭虚拟化来宾。 具有专用 (的) 具有其自己的电池备份的 raid 控制器不会遇到 -1018 jet 错误。
    -1019 JET_errPageNotInitialized /
    空白数据库页
    类似于 -1018 错误,但由页面刷新丢失导致。

    丢失刷新可以表示关键的 USN 更改。 如果对本地 DC 或可传递复制合作伙伴应用相同,则如果存在单个复制路径,则可能会有害的。

    在服务器类硬件和磁盘子系统组件上部署操作系统

    在主计算机上安装 UPS。

    安装具有板载电池备份的磁盘控制器。

    在驱动器控制器上禁用写回缓存。

    避免放置 NTDS。IDE 驱动器上的 DIT 和日志文件

    无法通过 NTDSUTIL 或 ESENTUTL 中的完整性检查或语义数据库分析来恢复或修复记录此错误的数据库。

    脱机碎片整理在不太可能是由索引一致性问题导致的情况下可能会解决问题。

    尝试脱机碎片整理,否则,还原在损坏日期之前的系统状态备份,或强制降级,执行完整的元数据清理,然后重新升级。 重复,直到硬件根本原因得到解决。
    -1021 JET_errDiskReadVerificationFailure /从文件 IO ERROR_CRC的操作系统 Jet error -1021 is new to Windows Server 2008 R2.

    在这种情况下,Windows Server 2008 R2 操作系统返回 -1022。

    -1021 标识磁盘级别发生了 -1018 错误。 已重新设置,-1021 表示磁盘驱动器返回错误检查总和错误,是磁盘堆栈中问题的特定原因。

    问题可能是由硬盘驱动器上可能跟踪的硬盘驱动器上的损坏块导致的。

    降级和重新提升域控制器可能会触发在正常块上存储数据。
    -1022 JET_errDiskIO/磁盘 IO 错误 常规磁盘错误

    磁盘 IO 错误意味着操作系统在访问磁盘时遇到非特定错误。 当控制器返回常规错误(如"设备未工作")时,可能会记录此错误。 对于 CRC 问题,某些磁盘和版本的 jet 返回此错误。

    验证整个驱动程序堆栈。
    -1605 JET_errKeyDuplicate/非法重复键 偶发性错误。
    降级和重新提示。
    可能是索引损坏造成的。
    运行 NTDUSITL 语义数据库分析。 如果仍未解决,请执行脱机碎片整理。
  4. 如果上表中未显示 NTDS 复制事件的 Jet 错误,请验证垂直 Jet 数据库堆栈

    如果 2108 事件记录表中未引用的 jet 错误,请使用Microsoft Exchange Server Error Code Look-up实用工具,使用语法"err"将 jet 错误解析为其符号友好错误 <jet error> 字符串。 在使用"-"前缀字符解决 jet 错误时,添加前导"-"前缀ERR.EXE。 (,例如,"c: \>err -1018") 。

    NTDS 复制事件 2108 中的事件消息文本包含 NTDS Replication 1084 事件的部分用户操作。

    链接的 KB 文章 MSKB 837932中记录了 NTDS Replication 2108 用户操作。 如果上表中未引用事件的用户操作,请通过验证从下到上 (的垂直 jet 数据库堆栈,在 MSKB 837932 中执行修改版本的操作计划 (仅在基础层签出"良好") 时继续下一层,就像使用 TCP 一样。

    Layer NTDSUTIL 命令 ESENTTUL 命令
    (1.) 物理一致性 无等效项 ESENTUTL /K
    (2.) ESE 逻辑一致性 NTDSUTIL 文件完整性 ESENTUTL /G
    (3.) 应用程序逻辑一致性 NTDSUTIL ->语义数据库分析

    +

    NTDSUTIL ->脱机碎片整理
    SDA 没有等效项


    +

    ESENTUTL / D