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

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

原始产品版本:   Windows Server 2019、Windows Server 2016、Windows Server 2012 R2
原始 KB 数:   232122

摘要

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

执行脱机碎片整理将创建新版本的数据库文件,而不会出现内部碎片。 此外,它还会重新创建所有索引。 根据原始数据库文件碎片的不同,新文件可能会小得多。

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

若要执行 Active Directory 数据库的脱机碎片整理,请按照以下步骤操作:

  1. 备份 Active Directory。 Windows Server 备份本身支持在联机时备份 Active Directory。 当您选择在备份向导中备份计算机上的所有内容,或通过选择在向导中备份 系统状态 时,会自动发生这种情况。

  2. 执行下列操作之一:

    • 停止 Active Directory 域服务 或 LDS 实例。
    • 启动 msconfig,然后转到 "启动" 窗格。 选择要配置的操作系统安装。 在 "启动选项" 部分中选择 "安全启动",并选择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 数据库,请使用 LD 实例名称。

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

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

  10. 为要存储压缩数据库的驱动器空间建立足够的位置。

  11. 类型 compact to <drive>:\<directory> ,然后按 enter。 在此命令中,占位符 <drive> 和 <directory> 表示您在上一步中建立的位置的路径。

    备注

    您必须指定目录路径。 如果路径包含任何空格,则整个路径必须用引号引起来。 例如,键入 compact to "c:\new folder"

  12. 名为 ntds.dit 或 AdamNtds的新数据库在您指定的路径中创建。

  13. 键入 quit,再按 Enter 键。 再次键入 quit 以返回到命令提示符。

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

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

    备注

    您不会删除 Edb.log 文件。

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

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