outlook 数据文件,整理AD数据文件碎片

整理AD数据文件碎片 - 电脑技巧 - 电脑教程网

整理AD数据文件碎片

日期:2006-07-31   荐:

    我相信每个视窗管理员对系统硬盘碎片整理肯定都相当熟悉,可是如果是要对活动目录的数据文件进行碎片整理呢,我想就不一定是每个人都知道了,由于近期我在工作的时候对自己管理的几个DC进行了类似的操作, 所以现在特意写下这篇短文和大家一起分享。

     背景:
    在我们机构里有几个很特殊的域,其中的一个域一共有40多万个用户, 由于整个系统已经用了2年多,在这段时间之中对AD的读,写,删除一直都很频繁. 本来系统的性能一向都很稳定,一直到最近,我们开始接到用户投诉,抱怨系统反应慢,其相应的应用软件也很容易超时,于是在一个周末根据计划我们对整个系统的性能进行了优化维护. 除了一些基本的硬件维护外,我们主要还对数据库的历史数据进行了下线存档,光是该操作就明显提高了整体系统性能30%以上, 由于在性能优化的分析阶段中我们还发现该域的4个域控的AD数据文件碎片情况也相当严重,所以决定同时对各个DC的AD数据文件也进行碎片整理以便最大限度的提高整个系统的性能.

    由于AD的数据文件是用来保存域信息的核心文件,如果对其了解不够,一旦出现操作不当,那么带来的后果将会是极其严重的, 所以在谈到AD数据文件的碎片整理前, 我想先略微解释一下AD数据文件的生成及一些基本情况,

    当管理员运行DCPromo建立域时,DCPromo会在建立AD的过程中生成edb.log, ntds.dit, res1.log, res2.log和edb.chk这几个文件.在默认状况下,这些文件将会被保存在DC的特定文件夹%systemroot% tds下. 不过出于数据安全考虑,在条件容许的情况下我还是建议大家在建立AD的时候,把OS, AD数据文件及AD事务日志分别安装到不同的硬盘上.这也是微软一直强调的best practice.

    当res1.log 和res2.log刚升成时,他们初始的大小都在10兆左右, 每次当管理员对AD进行操作时例如建立新用户,删除组用户等等的时候,AD会把这些改变记录到自己的数据文件和事务日志文件中. 在默认状况下做为AD垃圾数据收集(garbage collection)过程的一部分, AD每隔12个小时会定期整理自己的数据.这种也是AD碎片处理的一种及在线碎片处理.在线处理的好处是它不会影响AD的正常操作,但是不好的是这样的操作,只能让AD重新利用已用的空间,而不能真正减少AD数据文件的磁盘空间.

    AD的另外一种碎片处理方法就是下线碎片处理(Offline Defragmentation). 如果你要判断需不需要进行下线碎片处理,你可以把AD垃圾收集的日志记录级别改变成1,这样AD服务代理(DSA)就会把AD数据库的空间大小和内部可用空间记录到系统事务日志中去了,你可以利用这样的数据进行判断. 当然,这样的AD碎片处理只是在本地,所以它不会随AD的复制而复制到其他的DC上去. 如果有多个DC的存在,你需要对每个DC进行类似的处理

    虽然在AD的普通维护操作下,你可能永远都不会需要对AD做下线碎片整理,但是如果当你的AD用户庞大而且AD数据变化频繁(象我这样),或者有对AD做较大规模的数据移动(通常这种情况多发生在系统移植上),那么你就可能需要考虑这样的碎片整作了,这样 做可能会给你带来很大的好处.因为一旦当你做AD下线碎片整理后,不但可以重新获得大量的硬盘空间而且的AD的读写性能也可以得到相当的改善.

    运行NTdsutil进行AD碎片整理

    微软提供了NTDSUtil这个工具可以对AD数据文件进行下线碎片整理操作. 由于微软已经提供了这整个操作过程的说明,所以在这里我只稍微重复一下,再加上一些额外的说明以避免大家犯一些不必要的灾难性错误, 因为这是一个很关键的操作,一旦出错将是灾难性的.

    1. 用必要的备份软件备份你即将要操作的每一架DC,如果没有专业的备份软件用NTBackup也可以.
    2. 重启DC按F8键进入目录服务恢复模式以进行对AD的操作.
    3. 如果硬盘还有足够的空间那么请再次备份当前的ntds.dit文件,把它拷贝到一个临时文件夹内作为备份直到所有的整理工作成功完成.记住,不要重新命名文件,否则整个压缩过程不可能完成.
    4. 在命令行下键入以下的命令:
    a) Ntdsutil
    b) Files
    c) Info (记下当前ntds.dit的路径.)
    d) 键入 compact to "c:compact" 以把经过压缩处理的ntds.dit文件放置到这个文件夹中保存, 如果这个文件不存在,Ntdsutil 会自动建立一个(这个文件夹可以是任意名字).
    5. 如果要退出Ntdsutil的界面,请连续两次键入下面的命令:
    a) quit
    b) quit
    6. 用在c:compact文件夹下已经经过压缩后的ntds.dit覆盖当前的ntds.dit.
    7. 删除在AD数据库文件文件夹下的所有.log文件.
    8. 重新正常启动DC.
    9. 再次备份整理后的DC,如果一切正常,你就可以把刚才复制备份的ntds.dit删除了.

    实际数据:
    我的ntds.dit文件在整理前大小有近11G, 其中碎片占近45%, 经压缩处理后只剩了6G多.

    在这里我还想要强调一下,由于win2k及win2k3域中默认的墓石生命有60天,所以即使当你删除了AD的数据后,你也只能在60天后进行压缩处理,因为在这60天内AD还会继续保留这些数据.如果你想立刻对他们进行删除你可以利用ADSI编辑工具把 AD的垃圾收集属性改成1小时,然后把你DC的系统时间调快60天,那么很快AD里这些被删除的数据就会被真正删除掉.

    警告:
    如果你的域有多个DC,请不要进行这样的操作,因为这么做的结果会影响到AD的复制, Kerberos票据等.

    附录:
    如果你想要了解AD垃圾数据收集的详细资料,你可以参考微软的KB文章:
    (http://support.microsoft.com/?kbid=198793.)

    如果你想了解微软对AD数据文件的下线碎片整理的整个的操作过程的说明,可以参考微软的KB文章:

(出处:http://www.sheup.com)




标签: