打印

[分享] 活动目录数据库离线整理

活动目录数据库离线整理

所有管理都知道刚完成DC 安装时,活动目录数据库的大小是10M。但是经过长期的使用后,它会不断的变大。20M、30M、几百M……就这么长下去。特别是在大量添加用户账户以后,数据库增长率是比较高的。DC 安装好了并非事情结束,接下来的管理,排错等等事情,正可谓管理员麻烦的开始。

活动目录数据库分为联机整理和离线整理两种:

联机整理:

联机整理的发生频率为12 小时一次,它会自动回收AD 数据库中的垃圾。而这种回收机制分别独立的运行在每台DC 上,不需要管理员作任何干预。联机整理的最大好处在于,它在垃圾回收过程中DC 处理实时工作状态,并不会对企业应用造成影响。

离线整理:

离线整理需要管理员手动执行,一般是作了用户迁移和大批量账号加入以后进行操作。
离线整理不仅可以缩减不必要的数据以减小AD 数据库在大小,更重要的是它可以优化AD数据库使之全速运转。

下面就带领大家来做一个离线整理的事例:

1、 提升一台DC,并创建一个名为mstc.com.cn 的域。查看AD 数据库大小,确认为默认创建是10M。

如图1


[ 本帖最后由 garnett_wu 于 2007-6-18 21:14 编辑 ]
附件: 您所在的用户组无法下载或查看附件
本帖最近评分记录
  • kingstar 菊花元 +8 精品文章 2007-10-22 09:05

TOP

2、 我写了以下脚本来向AD 中批量创建5000 用户账户,以模拟大用户量向AD 中
添加过程。
' Made by 付林.
' ************************************************
Set objRootDSE = GetObject ( " LDAP://rootDSE " )
' 请将域DN 名改成你自己的
Set objDomain = GetObject ( " LDAP://dc=mstc,dc=com,dc=cn " )
' 创建名为Mstc 的OU
Set objOU = objDomain.Create( " organizationalUnit " , " ou=Mstc " )

objOU.SetInfo
Set objContainer = GetObject ( " LDAP://ou=Mstc, " & _
objRootDSE.Get( " defaultNamingContext " ))
For i = 1 To 5000
' 以用户名UserID+1 至5000 的数字作为用户名向域中添加用户账号
Set objLeaf = objContainer.Create( " User " , " cn=UserId " & i)
objLeaf.Put " sAMAccountName " , " UserId " & i
objLeaf.SetInfo
Next
WScript.Echo " 用户账户创建完成! "

TOP

3、 检查AD 数据库的扩大,目前为26M;

如图2


附件: 您所在的用户组无法下载或查看附件

TOP

4、 重启DC,在系统引导时按F8 进入目录服务恢复模式
5、 在C 盘要目录下创建ntdsback 文件夹,并将AD 数据库备份到此目录下,以免
压缩时发生意外,导致AD 数据库损坏;

如图3



[ 本帖最后由 garnett_wu 于 2007-6-18 21:30 编辑 ]
附件: 您所在的用户组无法下载或查看附件

TOP

6、 分别执行 ntdsutil
file
info
此时可以查看到AD 数据库和日志文件的一些信息,同时为正式压缩做好准备;

如图4

附件: 您所在的用户组无法下载或查看附件

TOP

7、 执行 compact to c:\new ,将ntds.dit 文件将被重新压缩整理后写到C 盘的
new 文件夹下;

如图5



附件: 您所在的用户组无法下载或查看附件

TOP

8、 确认无问题以后,将压缩后的AD 数据库文件替换原有的数据库文件;

如图6

附件: 您所在的用户组无法下载或查看附件

TOP

重启DC,并以正常模式启动。检查DC 的运行状况,并同时查看数据库文件压缩情况。

如图7



我这里的数据库文件已有原来的26M 被压缩到了20M。
附件: 您所在的用户组无法下载或查看附件

TOP

是不是2003的AD中刚生成的NTDS.DIT是12M啊?

TOP