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"目录下)。
三、使用非授权模式恢复Active Directory
要使用非授权模式,必须先停掉目录服务,我们应该按照以下步骤进行:
在Windows 2000启动时按下F8,选择"目录服务恢复模式",然后选择启动,然后Windows 2000进入安全模式。
以系统管理员或者备份操作员的身份登陆。
运行备份工具,从“欢迎菜单”中选择“还原向导”,选择“还原项目”,然后选中“系统状态”。在系统状态就包括了注册表、Active Directory和其他系统的关键组件。
在完成恢复操作以后,就可以重启这台域控制器了。
重启之后,这台域控制器将会参与Active Directory的复制会直接从其他的域控制器上接受最新的更新。
四、使用授权模式恢复Active Directory
通过授权恢复模式,你可以把所有的域控制器恢复到以前的某一时刻的状态。比如,当系统管理员误删除了一个组织单元(OU),而且此组织单元中包含了非常重要的用户帐户信息。,那我们怎么办呢,此时我们可以通过使用授权的模式恢复丢失的信息,这样一来我们可以达到两个目的:一是恢复本地Active Directory的信息;二是恢复由于复制导致其他域控制器丢失信息的Active Directory。
授权模式就是要修改Active Directory对象的版本号,一般情况下,授权模式会在原来版本号的基础上加一万,以达到比所有其他的Active Directory数据库的版本号都高,那么低版本的数据库就会以高版本的数据库为标准而复制,以达到授权恢复的目的,当然,增加的数值可以自定义。
要使用授权模式,必须要使用Ntdsutil工具:
在命令提示符输入"cmd",然后输入:Ntdsutil
在Ntdsutil提示符下,输入:authoritative restore.
此命令意味着将进入授权恢复模式。在授权恢复模式提示符下,输入:restore database
当系统提示需要确认进行授权恢复操作时,回答:yes,然后输入:Quit。回车两次,就可以关闭此窗口了。
在Active Directory 恢复完成以后,系统会自动弹出消息框是否要重启服务器,一定要选择“NO”,这点一定要注意。
最后,我们要知道每次的授权模式恢复以后,Sysvol文件夹也一同被恢复了,这样一来,保证了Sysvol和Active Directory的一致。
以下是授权模式的一些命令:
authoritative restore: 列出授权模式命令列表。
Restore database: 授权模式恢复整个数据库
Restore database verinc %: 增加版本号
等等,详细命令可以查看Win2000帮助文件。
下图是使用授权模式的界面: