上几篇:监测和维护活动目录(一) ,监测和维护活动目录(二) , 监测和维护活动目录(三)中,我们主要了解了对AD需要监控什么和如何监控
本篇则是讲述对AD如何维护,至此<WindowsServer2008ActiveDirectoryResourceKit>一书中的第十四章就全部翻译完成,再次谢谢我的妻子对我的帮助.
后面我仍会翻译此书中部分大家都比较感兴趣的内容,敬请期待.
 
活动目录数据库维护
管理活动目录的重要组成之一就是维护活动目录数据库。在正常环境下,你很少需要直接管理活动目录数据库,因为常规的自动数据库管理会维护除了异常情况之外的数据库的健康。这些自动处理包括在线的数据库磁盘空间碎片整理和清理删除项目的垃圾收集。对于这些仅有的需要直接管理活动目录数据库的时机,Windows Server 2008提供了Ntdsutil工具。
 
垃圾收集
维护活动目录数据库的自动程序之一就是垃圾收集。垃圾收集是一个在每个域控制器上每12小时就会运行一次的程序。在垃圾收集过程中,活动目录的剩余空间被恢复。
垃圾收集以清除数据库墓碑为开始。墓碑是已被从活动目录中删除的对象的残余。当一个对象如用户帐号被删除,这个对象并没有被立刻删除。确切地说,是该对象的“isDeleted”属性被设置为true,该对象被标记为墓碑,该对象的大部分属性被移除。只有一些用于辨识该对象的属性被保留,例如全局唯一标识(GUID),SID,更新顺序号码(USN)和区分名字。然后该墓碑被复制到域内的其他域控制器。每个域控制器保留了一份墓碑对象直至其有效期到期。默认情况下,墓碑的有效期为180天。在墓碑到期后一次运行的垃圾收集程序会将该对象从数据库删除。
删除墓碑后,垃圾收集程序会删除任何不必要的处理日志文件。当活动目录数据库修改时,首先会被写入处理日志,然后被提交到数据库。垃圾收集程序会删除所有不含有未提交处理的处理日志。
如前所述,垃圾收集程序在每个域控制器上每12小时运行一次。你可以通过修改garbageCollPeriod属性来修改这个时间间隔。你可以从管理工具菜单中使用ADsiedit.Msc.Open ADSI Edit然后连接到配置命名内容来修改这一设置。你可以扩展CN=配置,扩展CN=服务,扩展CN=Windows NT,然后选择CN=目录服务。右键点击CN=目录服务,然后查找到garbageCollPeriod属性修改你想要的值。在多数情形下,你不需要修改这一设置。图14-8显示ADSI Edit中这一属性。
clip_p_w_picpath002
图14-8 ADSI Edit中的garbageCollPeriod属性
 
在线磁盘碎片清理
垃圾整理程序最后一步是对活动目录数据库在线磁盘碎片清理。在线磁盘碎片清理释放了数据库的空间,重新排列了数据库的活动目录对象的整理以提高数据库的效率。当在数据库中操作对象时,由于活动目录使用的程序,进行在线磁盘碎片清理是必需的。
通过常规操作,活动目录数据库系统被优化一能够快速应对活动目录数据库的修改变化。当一个对象从活动目录中被删除,该对象存储的数据库页面被载入计算机记忆体,该对象被从页面中删除。当对象被添加到活动目录,无需考虑对该信息重新获取的优化存储,就将其写入数据库页面。当几个小时的快速提交修改到数据库后,数据库的数据存储也许已经不是最优的了。例如,数据库可能包含对象已被删除的空页面,也许有一些已被删除项目的很多页面,或许存在应该被存储在一起的活动目录对象分散地存储在很多不同页面。
在线磁盘碎片清理程序清理数据库将其还原到一个最优的状态。如果一个数据库页面的一些登录被删除,其他页面的登录会被移到该页面以优化存储和信息的获取。那些需要被一起显示的对象应该被有规律地存储在一起,它们会被移到同一数据库页面或是相邻的页面。在线磁盘碎片整理程序的一个限制就是它不能缩小活动目录数据库的大小。如果你从活动目录删除了大量的对象,在线磁盘碎片清理通过在数据库中移动对象可能会在数据库里产生大量的空页面。然后,在线磁盘碎片清理不能将这些空页面从数据库中移除。你必须使用离线磁盘碎片清理程序来移除这些页面。
作为垃圾收集程序的一部分,在线磁盘清理程序每12小时运行一次。当其完成时,一个事件被写入目录服务日志来说明该程序被成功完成。图14-9是一个这类事件日志信息的例子。
clip_p_w_picpath004
图14-9 一个说明成功在线磁盘碎片清理的目录服务日志信息
 
活动目录数据库的离线磁盘碎片清理
如前面提到的,在线磁盘碎片清理不能缩小活动目录数据库的大小。通常情况下,这不会成为一个问题因为那些在线磁盘碎片清理出来的数据库页面可以被新添加的对象使用。然而,在有些情形下,你必须使用离线磁盘碎片清理程序来缩小整个数据库的大小。例如,你想要一处一个域控制器的全局编录,你需要运行离线磁盘碎片清理程序来清理数据库里存储GC信息的空间。这个需求对于GC非常庞大的多域环境显得尤为重要。你也应该使用离线磁盘碎片清理程序当你从活动目录域中移除了大量的对象后。
运行离线磁盘碎片清理,需遵照以下步骤:
1. 备份域控制器上的活动目录信息。该过程会在第十五章“活动目录灾难恢复”中讲述。
2. 对于Windows Server 2008域控制器,打开服务控制台,停止活动目录域服务服务以及所有提示的相关服务(或是在提示命令行中键入net stop ntds)。
注意 对于Windows Server 2003,重启域控制器。当服务器重启时,按F8显示高级启动选项,选择 Directory Services Restore Mode。在服务器重启后,使用本地管理员帐号登录。当你促进域服务器时,使用目录服务存储模式密码。
3. 打开命令提示符,键入ntdsutil。
4. 从Ntdsutil提示符,键入 Activate Instance NTDS.
5. 从Ntdsutil提示符,键入files。
6. 从文件维护提示符,键入info。这一选项显示当前关于活动目录数据可和其日志文件的路径和大小的信息。
7. 键入compact to drive:\directory。选择一个有足够空间存储整个数据库的驱动器和目录。如果目录路径名包含有空格符,则该路径应打上引号标记。
8. 离线磁盘碎片清理程序在你指定的路径下创建一个名为Ntds.dit的新数据库。当数据库被拷贝至新位置,它在被清理。
9. 当清理完成后,键入quit两次回到命令提示符。
10. 在活动目录数据库路径下拷贝被清理的Ntds.dit文件覆盖原有的Ntds.dit文件,然后删除老的日志文件。
11. 重启域控制器。
注意:如果你是因为在活动目录中删除了大量的对象而使用清理数据库,你必须在所有域控制器上重复上述程序。
 
使用Ntdsutil管理活动目录数据库
使用Ntdsutil除了离线磁盘碎片清理活动目录数据库外,也可以其它方式用以管理活动目录数据库。Ntdsutil工具可用以执行一些低水平的活动目录数据库恢复任务。数据库恢复选项都是非破坏性的-也就是说,该恢复工具会修正活动目录数据库的问题,但绝不会以删除数据作为代价。
 
恢复处理日志
恢复处理日志意味着迫使域控制器重新运行处理日志。当域控制器从强制关机重启时该选项会被域控制器自动执行。你也可以使用Ntdsutil工具执行软件恢复。
 
更多信息 十五章会详细描述处理日志在活动目录中的使用
执行处理日志的恢复,需要进行以下操作:
1. 重启服务器,选择选项进入Directory Services Restore模式。作为一个选项,你可以在Windows Server 2008域控制器中停止活动目录域服务。所有Ntdsutil数据库操作需要停止AD DS。
2. 打开命令提示符,键入ntdsutil。
3. 从Ntdsutil提示符,键入Activate Instance NTDS。
4. 从Ntdsutil提示符,键入files。
5. 从文件维护提示符,键入recover。
改恢复选项常作为数据库恢复的第一步因为他确保了数据库和处理日志的一致性。当这个完成后,你可以运行其他需要的数据库选项了。
 
查看数据库完整性
查看数据库完整性意为在低位(二进制)下查看数据库来查找数据库损坏。该程序也检查所有的数据库头和所有的表格以保证一致性。因为在此过程中,数据库的每字节都被检查,因此在一个大型数据库上运行需要花费很长一段时间。在Ntdsutil文件维护提示符键入integrity来运行完整性检查。
 
语义数据库分析
语义数据库分析和完整性检查区别在于它不是在二进制水平下检查数据库。语义分析检查数据库相对于活动目录语义的一致性。语义数据库分析检查数据库中的每个对象以确保每个对象具有一个GUID,恰当的SID和正确的复制元数据。
为了执行语义数据库分析,需要遵照一下步骤:
1. 打开一个命令提示符,键入ntdsutil.
2. 从Ntdsutil提示符,键入 Activate Instance NTDS.
3. 在Ntdsutil提示符,键入 semantic database analysis.
4. 在语义检查器提示符,键入verbose on。这一设置配置Ntdsutil在语义检查器运行时在屏幕上写附加信息。
5. 在语义检查器提示符,键入go。
 
移动数据库和处理日志位置
Ntdsutil工具也被用于移动数据库和处理日志。举个例子,如果处理日志和数据可都位于同样的硬盘,你可能想要移动其中一个到其他硬盘。或者硬盘的数据库文件慢了,你也不得不移动数据库。
在目录服务存储模式下(或是停止了活动目录域服务)移动数据库和处理日志去新位置,需要遵照一下步骤:
1. 打开命令提示符,键入ntdsutil。
2. 从ntdsutil提示符,键入 Activate Instance NTDS。
3. 从ntdsutil提示符,键入files。
4. 在Ntdsuitl提示符键入into查看现在文件的位置。该命令列出了数据库和日志的文件位置。
5. 在文件维护提示符,键入move db to directory来移动数据库文件。directory表示文件的目的位置。这一命令移动数据库去指定的位置,并且从新配置注册表项访问文件到正确的位置。
6. 在文件维护提示符,键入move logs to directory来移动处理日志。
 
总结
本章介绍了监测活动目录和域控制器的系统健康的程序和一些必须工具。执行日常的监测方案,你可以在问题发生前发现一些潜在的破坏、系统瓶颈和一些性能问题。活动目录的有效监测会给你提供有价值的性能趋势数据可用以将来的系统改善。监测是触动必要支持任务来保证活动目录架构运行在最好条件下的方法。在没有时间日志错误和报警时,你也必须执行日常的数据库维护程序以保证活动目录数据库有效率的运作。本章介绍了在线和离线磁盘碎片清理程序和一处删除的活动目录对象的垃圾收集程序。
附加资源
下列资源包含本章相关的附加信息和工具
附加信息
■ 第十五章, “活动目录灾难恢复”提供活动目录数据存储、备份和数据库恢复的详细讲解。
■ “Windows Reliability And Performance Monitor,” 文章来自
http://technet2.microsoft.com/windowsserver2008/en/library/ec5b5e7b-5d5c-4d04-98ad-
55d9a09677101033.mspx?mfr=true
■ “AD DS: Restartable Active Directory Domain Services,” 文章来自
http://technet2.microsoft.com/windowsserver2008/en/library/822ff47d-bd55-4c08-abc1-
2d66336e33e51033.mspx?mfr=true
■ “Windows Vista: Reliability and Performance,” 文章来自
http://technet.microsoft.com/en-us/windowsvista/aa905077.aspx
■ “Active Directory Directory Services Maintenance Utility (Ntdsutil.exe),”文章来自 http://technet2.microsoft.com/windowsserver/en/library/819bea8b-3889-4479-850f-
1f031087693d1033.mspx?mfr=true
■ “Relocating Active Directory Database Files,”文章来自
http://technet2.microsoft.com/windowsserver/en/library/af6646aa-2360-46e4-81cad51707bf01eb1033.
mspx?mfr=true
■ “Relocating SYSVOL Manually,” 文章来自http://technet2.microsoft.com/
windowsserver/en/library/300796c6-8148-49af-a327-b5dca853ac4f1033.mspx?mfr=true
■ “Best Practices for SYSVOL Maintenance,”文章来自
http://support.microsoft.com/kb/324175
■ “Microsoft Active Directory Management Pack Guide,”文章来自
http://www.microsoft.com/downloads/details.aspx?familyid=2B9D3613-5516-4F44-8550-
B21E054F5047&displaylang=en
■ “Monitoring Active Directory with MOM,”文章来自http://download.microsoft.com/
documents/uk/technet/downloads/technetmagazine/issue4/36_monitoring_ad_with_mom.pdf