今天我们来学习活动目录数据库的维护,各位都知道,在%systemroot%\ntds\下面有一个ntds.dit的文件,这个文件就是我们的AD数据库,但在这个目录下,还存在一些其它文件,试问这些是做什么的呢?再者,如果我的AD数据库出问题了,怎么来修复呢?还有,能不能把AD数据库移动位置呢?怎么对AD数据库进行优化呢?带着这些问题,我们来看今天的课程!

(一)活动目录数据的修改过程:(具体修改过程如下图所示)
在C:\windows\ntds\(如果系统装在C盘)目录下有几个文件,数据库ntds.dit,日志文件edb.log,这个文件最大是10M,当不够时会生成 edb00001.log等文件,当创建或删除用户时会写入此文件,(其实首先写出缓存)然后再写入edb.log和ntds.dit,并把该操作记入 edb.chk文件。当C盘空间不够时,系统会删除res1.log和res2.log两个文件,这样又有了20M空间可用。


(二)AD数据库的优化:
1.移动AD数据库(进入AD的恢复模式,开机F8,选目录还原模式)
应用场合:当C盘空间不够了,可以实现。
ntdsutil
files
info             查看当前数据库等信息存放的情况。
move db to d:\   该操作适宜场合:原来C盘的空间不够了,或为了提高性能,把数据库和日志文件分开存放。
只移动的是:ntds.dit和edb.chk
move  log   to d:\  这是移动日志文件,一般情况下可把日志文件和DB分开存放。

2.压缩AD数据库
有两种压缩方式:一种是在线整理(由DC自动完成),一种是离线整理(手动进行)
a.在线整理:DC会每隔12小时自动运行所谓的“垃圾收集程序”来整理AD库,它只是将资料有效率的重新整理、排列。不会减小空间。此时AD在线。
b.离线整理:在目录还原模式内手动进行,会压缩空间,AD离线。
操作方式:进入目录还原模式后,
运行ntdsutil
file
compact to d:\temp  压缩后的文件一般会变小,文件名还是ntds.dit
然后手动复制到原来的位置,你会发现数据库变小了,而且AD的性能会变好。
Integrity   检查AD数据库文件是否有损坏。

(三)AD数据库备份和还原:
1.备份:对于AD的备份,不能单独备份,可以通过备份“系统状态”来实现。
操作:运行ntbackup,高级模式,备份,系统状态,然后选择备份位置和文件名即可,大约需要10几分钟左右时间,要看你AD的大小了。
2.还原:(只能还原60内的备份数据)分主还原、正常还原、授权还原。
a.主还原:AD和操作系统都坏掉了。
操作:当域内所有的DC都坏掉了,可以在第一台DC上进行主还原,然后再在其它DC上依次进行标准还原(正常还原),这样其它DC会从第一台DC上的数据来同步。
**主还原和正常还原一样,只不过在进行还原时,单击高级后,选择“当还原复制的数据集时,将还原的数据作为所有副本的主要数据”一项,即可结束。
 
b.正常还原:AD坏但操作系统好(F8进入目录恢复还原模式,运行ntbackup,还原,选择备份文件还原即可)不用演示了吧~~~~

c.授权还原:一般对某个用户的删除进行恢复。
    如果有多个DC,之间进行多主控复制,但当你删除了一个对象,想还原之,其它DC的AD中还会有这个用户。但如果你使用正常还原,即原来备份的AD数据库来还原的话,由于原备份的对象的ID号肯定会比现存的小,所以即使你还原了,过一段时间又会消失了,怎么办呢?最好采用这里的授权还原。它可以把还原的对象的ID号每隔一天增加10万次。
具体操作如下:(还原AD后,不要重启,运行ntdsutil,进行相应的操作,如下所示:)
ntdsutil
authoritative restore
restore object cn=bob,cn=users,dc=nwtraders,dc=com  如果删除的是bob这个用户。
Restore  subtree  ou=sails,dc=hp,dc=com  针对hp.com内的sails的OU实施强制性还原。
Restore  database  授权还原整个数据库

注:你要注意,你所删除的用户或OU必须在备份文件中!!!

授权还原后,进入正常模式,运行 Repadmin  /showmeta  cn=test,cn=users,dc=hp,dc=com   可以查看版本号的变化情况。

结束语:有关AD的维护就讲完了,各位还有什么问题吗?在企业环境里,记得要经常做AD备份,最后做备份计划!