Windows2000的使用过程中,我们会遇到AD由于意外被损坏的 情况,那么我们用什么方法来恢复呢?下面我们就来讨论Active Directory修理和恢复。
一、使用Ntdsutil来修理Active Directory
根据系统的报错信息、系统日志或者应用程序的报错,你怀疑出错原因是域控制器上的Active Directory,这时候可能最先想到的是使用Ntdsutil来修复。但是,我建议最好把他作为最后一个也是最为有用的一个方案。如果你有一个系统的备份,最好使用备份来恢复系统,应该始终把使用备份恢复作为你首选的方案。
对目录服务数据库使用修复功能并不总能够达到预期的结果。比如,如果真的数据库文件损坏了,即使使用Ntdsutil也是没有办法恢复所有的对象及其属性。实际上,在某些情况下使用修复工具反而会造成更多的数据丢失,所以在尝试使用这种修复工具之前,注意把这个服务从网络中隔离开来,以避免影响到其他的域控制器的Active Directory复制。在你确认修复后的服务器一切正常以后再连接到网络中来。
使用ntdsutil修复AD数据库。
(1)打开命令行提示符窗口,输入下面命令:Ntdsutil
(2)出现Ntdsutil以后,输入以下命令:repair
二、恢复Active Directory
当其他一切努力都失败时,你可能会发现从AD的备份中恢复一个Win2000 DC(域控制器)是最有效的。虽然要把Active Directory从一个备份恢复到一个域控制器上不是一件难事,但是在你进行任何恢复之前,你需要对你的网络体系和逻辑关系仔细考虑。你应该考虑以下几个问题:
是否本地的Active Directory 数据库损坏了,其他复制的域控制器是否也损坏了。
一个域控制器从你的备份中恢复,是否要覆盖其他的域控制器的Active Directory数据库信息。如果要覆盖,那么以前修改过的信息就会全部丢失(如:修改的帐户与属性等)。
或者你将要修复的Active Directory要从其他的域控制器上复制原有的信息(如:帐户和属性等)。
因为上面的问题在于选择使用那一种恢复模式。在 Active Directory恢复模式中有两种:非授权(No authoritative)和授权(authoritative).
非授权(No authoritative)模式:大多数的恢复操作都是此种模式。要恢复Active Directory的这一台域控制器从其他的域控制器上复制信息,这是依靠一个叫“版本号 (USN)”的参数。Active Directory在同一个域中,是通过这个参数去更新复制的,谁的版本号高,就找谁复制。
授权(authoritative)模式:当其他的域控制器包含无效的信息时,或我们有特定的要求以某一台域控制器为准做复制,此时可采用授权的恢复复制模式。在这种情况下,你可以手工指定你要恢复的整个Active Directory的数据库。指定本地恢复的数据库是授权的(也就是在与其他域控制器复制时,以本地恢复的版本号为准)。此时就要修改Active Directory的版本号,这样一来他的版本号就高于其他域控制器的Active Directory数据库的版本号,从而以本地数据库的内容为主进行复制。
如果你使用Windows 2000自带的备份工具 (Ntbackup.exe),要想成功恢复系统状态(包括Active Directory),就必需有以下特点:
服务器的名称必须相同。
“%systemroot%”文件夹所在的驱动器的字符必须和备份服务器的驱动器字符相同。
“%systemroot%”文件夹所在的目录必须和备份服务器所在目录相同。(例如都在"c:winnt"目录下)。