论坛风格切换
 
  • 帖子
  • 日志
  • 用户
  • 版块
  • 群组
帖子
购买邀请后未收到邀请联系sdbeta@qq.com
  • 1438阅读
  • 0回复

[求助-系统问题]Active Directory的脱机碎片整理 [复制链接]

上一主题 下一主题
离线sky
 
发帖
*
今日发帖
最后登录
1970-01-01
只看楼主 倒序阅读 使用道具 楼主  发表于: 2009-01-19 06:57:13
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进行离线的脱机碎片整理呢?我们以域控制器Florence举例为大家演示应该如何操作,首先我们在Florence上要进入目录服务还原模式,在这个模式下,Active Directory将被脱机挂起,然后我们就可以对离线的Active Directory数据库进行处理了。如下图所示,我们重启Florence,然后在自检结束后按F8键选择进入“目录服务还原模式”。
  

  进入目录服务恢复模式后,我们输入命令 NTDSUTIL,如下图所示,我们将使用NTDSUTIL对Active Directory进行碎片整理。
  

  如下图所示,我们在NTDSUTIL中输入Files。
  

  如下所示,我们输入Compact To C:\,意思是对Active Directory数据库清理碎片后压缩到C盘的根目录下,这样我们将在C盘的根目录下得到一个消除了Active Directory碎片的Ntds.dit。
  

  如下图所示,大家可以发现真正压缩Active Directory的是esentutl.exe,这个工具大家以后也会经常使用,而且大家会在Exchange中发现有类似的工具,这主要是因为Active Directory,Exchange,WINS等服务器都使用了类似的非关系型数据库引擎。
  

  如下图所示,压缩成功后我们用新的ntds.dit覆盖了原来的Active Directory数据库文件,同时删除了原有的日志文件,但仍然保留edb.chk文件。
  

  如下图所示,这就是我们进行碎片整理后的Active Directory文件,如果在一个大型网络中,经过这种离线整理后可以很明显地看出对磁盘空间的释放。
  

  对Active Directory进行脱机碎片处理只能在单台域控制器上分别进行,对Active Directory压缩不会影响Active Directory现有数据,也不会影响Active Directory的复制。