Active Directory是一个被设计用于查询的非关系型数据库,Active Directory使用一段时间后,需要对数据库内容进行维护,以减少数据碎片及提高查询效率,今天我们就为大家介绍一下如何对Active Directory的数据库进行离线维护。
Active Directory创建时默认的数据库及事务日志的存放路径是C:\Windows\NTDS,我们打开前文中创建的域控制器Florence,定位到C:\Windows\NTDS目录下,先来了解一下下图中各文件的作用。其中的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将被脱机挂起,然后我们就可以对离线的Active Directory数据库进行处理了。如下图所示,我们重启Florence,然后在自检结束后按F8键选择进入“目录服务还原模式”。
输入目录服务还原模式帐号和密码进入目录还原模式
目录服务还原模式帐号是.\administrator 密码是创建域时填写的,如果忘记了可以通过正常模式进入后通过ntdsutil重置。
ntdsutil
ActivateInstancentds
Files
CompactToC:\
意思是对Active Directory数据库清理碎片后压缩到C盘的根目录下,这样我们将在C盘的根目录下得到一个消除了Active Directory碎片的Ntds.dit。
用新的ntds.dit覆盖了原来的Active Directory数据库文件,同时删除了原有的日志文件,但仍然保留edb.chk文件。
quit
quit
copy/y"c:\ntds.dit""c:\Windows\NTDS\ntds.dit"
如下图所示,这就是我们进行碎片整理后的Active Directory文件,如果在一个大型网络中,经过这种离线整理后可以很明显地看出对磁盘空间的释放。
注意:对Active Directory进行脱机碎片处理只能在每台域控制器上分别进行,对Active Directory压缩不会影响Active Directory现有数据,也不会影响Active Directory的复制。
,