对 Active Directory 数据库执行脱机碎片整理

本文介绍如何对 Active Directory 数据库执行脱机碎片整理。

适用于:Windows Server 2019、Windows Server 2016、Windows Server 2012 R2
原始 KB 编号: 232122

摘要

Active Directory 会自动在垃圾回收过程中按特定间隔对数据库执行联机碎片整理。 (默认情况下,这种情况每隔 12 小时发生一次。) Online 碎片整理不会减小数据库文件的大小, (Ntds.dit) 而是优化数据库中的数据存储,并回收目录中的新对象的空间。

执行脱机碎片整理会创建数据库文件的新版本,而无需内部碎片。 它还会重新创建所有索引。 根据原始数据库文件的碎片化程度,新文件可能要小得多。

对 Active Directory 数据库执行脱机碎片整理

若要对 Active Directory 数据库执行脱机碎片整理,请执行以下步骤:

  1. 备份 Active Directory。 Windows Server 备份本机支持联机时备份 Active Directory。 在“备份向导”中选择用于备份计算机上的所有内容的选项时,或者通过选择备份向导中的 “系统状态 ”来独立时,会自动发生这种情况。

  2. 执行下列操作之一:

    • 停止Active Directory 域服务或 LDS 实例。
    • 启动 msconfig,然后转到启动窗格。 选择要配置的 OS 安装。 在“启动选项”部分选择“安全启动”,同时选择“Active Directory”修复项。 单击“ 确定”后,该工具会要求重启。 重启计算机。
  3. 使用目录服务还原模式 SAM 中为本地管理员帐户定义的密码登录到管理员帐户。

  4. 打开 命令提示符 窗口。

  5. NTDSUTIL 在碎片整理期间使用 TEMP 和 TMP 环境变量创建临时数据库。 如果所使用的标准卷上的可用空间小于压缩数据库的大小,则会收到以下错误:

    文件维护:压缩到 d:\compactDB
    正在启动碎片整理模式...
    源数据库:D:\windows\NTDS\ntds.dit
    目标数据库:d:\compactDB\ntds.dit

    碎片整理状态 (%已完成)

    0 10 20 30 40 50 60 70 80 90 100

    |----|----|----|----|----|----|----|----|----|----|

    ..........................操作终止,错误为 -1808 ( JET_errDiskFull,磁盘) 上没有剩余空间。

    在这种情况下,请将环境变量 TMP 和 TEMP 设置为有足够的可用空间用于任务的卷。 例如,使用以下设置:

    Md d:\temp
    Set tmp=d:\temp
    Set temp=d:\temp
    

    注意

    在数据库的完整性检查期间,也可能发生此问题。

  6. 运行 NTDSUTIL。

  7. 键入 activate instance ntds 以选择 Active Directory 数据库实例。 如果要压缩 LDS 数据库,请使用 LDS 实例名称。

  8. 键入文件,然后按 Enter。

  9. 键入信息,然后按 Enter。 这会显示有关 Active Directory 数据库及其日志文件的路径和大小的当前信息。 记下路径。

  10. 建立一个位置,该位置有足够的驱动器空间来存储压缩的数据库。

  11. 键入 compact to <drive>:\<directory>,然后按 Enter。 在此命令中,占位符 <驱动器> 和 <目录> 表示在上一步中建立的位置的路径。

    注意

    必须指定目录路径。 如果路径包含任何空格,则整个路径必须用引号引起来。 例如,键入 compact 到“c:\new 文件夹”。

  12. 在指定的路径中创建名为 Ntds.ditAdamNtds.dit 的新数据库。

  13. 键入“退出”,然后按 Enter。 再次键入 quit 以返回到命令提示符。

  14. 如果碎片整理成功且没有错误,请按照屏幕上 Ntdsutil.exe 说明进行操作。 通过键入以下命令 del drive :\ pathToLogFiles \*.log删除日志目录中的所有日志文件。

    将新的 Ntds.dit 或 AdamNtds.dit 文件复制到在步骤 5 中记录的当前数据库路径中的旧数据库文件。

    注意

    你没有删除 Edb.chk 文件。

  15. 如果停止了Active Directory 域服务或 LDS 实例,则可以立即重启它。

  16. 如果在 Active Directory 还原模式下工作,请启动 msconfig 并转到启动窗格。 选择要配置的操作系统安装。 单击以清除 “启动 选项”部分中的安全 启动 。 单击“ 确定”时,该工具会要求重启。 重启计算机。