Active Directory的脱机碎片整理

Active Directory是一个被设计用于查询的非关系型数据库 , Active Directory使用一段时间后 , 需要对数据库内容进行维护 , 以减少数据碎片及提高查询效率 , 今天我们就为大家介绍一下如何对Active Directory的数据库进行离线维护 。
Active Directory创建时默认的数据库及事务日志的存放路径是C:WindowsNTDS , 我们打开前文中创建的域控制器Florence , 定位到C:WindowsNTDS目录下 , 先来了解一下下图中各文件的作用 。其中的NTDS.DIT是Active Directory的数据库文件 , EDB.LOG是事务日志文件 , 事务日志文件记录了数据库内容的变更 , 非常重要 。默认的事务日志文件大小只有10M , 如果事务日志文件已经记录满了 , 系统就会自动地生成edb00001.log用以继续存储事务日志 , 如果edb00001.log也存满了 , 就会接下来生成edb00002.log , 以此类推 。顺便提一下 , 在生产环境下 , 我们应该把数据库文件和事务文件分开存储 , 这样既可以提高性能 , 也可以增加数据安全性 , 但Win2003要求Active Directory的数据库和事务日志都存储在同一个硬盘上 , 不像Win2000中Active Directory的数据库和事务日志可以存储在不同的硬盘上 。
EDB.CHK是事务日志的检查点文件 , 记录了硬盘上的Active Directory和内存中Active Directory在内容上的差异 , 一般此文件用于Active Directory的初始化或还原 。RES1.LOG和RES2.LOG是系统保留的事务日志文件 , 这两个文件一共占用了20M空间 , 主要目的就是为了给Active Directory的事务日志预留20M空间 , 避免当硬盘空间用光后无法正常关机 。
Active Directory使用一段时间后 , 会产生数据碎片 , 表现为Active Directory占用的空间增大 , 响应速度降低 , 这时就需要对Active Directory做一些碎片整理了 。Active Directory的碎片整理分为在线和离线两部分 , 默认情况下在线整理会12小时进行一次 。在线整理的好处是在数据库维护的过程中不需要关闭Active Directory , 用户不会受到影响;缺点是在线整理只能在已分配的数据库空间内进行碎片整理 , 无法减少数据库占用的空间 。如果Active Directory的规模不大 , 数据变更不频繁 , 我们使用默认的在线整理也就可以了 。如果Active Directory的数据库很大 , 达到上G的规模 , 而且数据频繁更改 , 这时我们就要使用今天提到的离线维护了 。离线维护需要对Active Directory进行脱机处理 , 然后再进行Active Directory的碎片整理 , 这个过程中Active Directory无法使用 , 基于AD的业务系统会受到影响 , 因此建议在工作空闲时间例如晚上进行 。Active Directory进行脱机碎片处理后 , 可以有效地减少Active Directory数据库的大小 , 提高查询速度 , 有的单位经过第Active Directory进行脱机碎片处理后 , 可以把Active Directory的大小从11G降为6G!因此对Active Directory更新频繁 , 而且Active Directory内包含海量数据的单位来说 , 离线维护还是很有必要做的 。
如何才能对Active Directory进行离线的脱机碎片整理呢?我们以域控制器Florence举例为大家演示应该如何操作 , 首先我们在Florence上要进入目录服务还原模式 , 在这个模式下 , Active Directory将被脱机挂起 , 然后我们就可以对离线的Active Directory数据库进行处理了 。如下图所示 , 我们重启Florence , 然后在自检结束后按F8键选择进入“目录服务还原模式 。
进入目录服务恢复模式后 , 我们输入命令 NTDSUTIL , 如下图所示 , 我们将使用NTDSUTIL对Active Directory进行碎片整理 。
;如下图所示 , 我们在NTDSUTIL中输入Files 。
【Active Directory的脱机碎片整理】如下所示 , 我们输入Compact To C: , 意思是对Active Directory数据库清理碎片后压缩到C盘的根目录下 , 这样我们将在C盘的根目录下得到一个消除了Active Directory碎片的Ntds.dit 。

推荐阅读