|
活动目录(AD)通常是公司企业的关键网络服务之一。要是没有它,一切都会渐渐 地停下来。考虑到这一点,防范 可能会影响活动目录林(forest)的各种灾难就显得很重要。
说到活动目录,灾难的严重性可能大不一样。有的很简单,比方 某一个域控制器(DC)出现问题 ,或者某一个对象不当心 被删除。比较糟糕的状况 是,整个组织单元(OU)层次体系不当心 被删除。而最糟糕的状况 则是,可能需要. 还原整个域或活动目录林。
不过好音讯 是,适用于从简单灾难恢复过来的许多技巧和方法同样适用于从严重 灾难恢复过来。本文将讨论 如何从域控制器出问题 和对象不当心 被删除这两种最常见的灾难恢复过来。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">备份策略</b>
你首先要确保:有东西可以用来恢复。最少 ,应该有有效的系统状态备份,备份了活动目录林中每个域的至少两个域控制器。Windows Server Backup(Windows Server 2008及以后版本)、NTBackup(Windows Server 2003和Windows 2000 Server)以及大多数商用备份工具都可以执行有效的系统状态备份。不过,测试备份总是值得的,确保一切都处于良好状态。备份工具方面有一点很重要,那就是应该使用一款可感知卷影复制服务(VSS)的备份工具。依赖磁盘镜像或虚拟机快照技术的备份工具一般与活动目录不兼容。还原由这类工具生成的备份会惹起 严重的复制问题 ,这种问题 叫更新序列号(USN)回滚。
在许多企业,担任 服务器备份和还原的与运行活动目录的常常不是同一个团队。这带来了几个问题。首先,你无法直接控制备份过程,因此 很难验证备份内容。其次,许多备份工具要求在进行备份的每个活动目录上要有代理软件,这间接提供了对域控制器的更高访问权。
为了应对这些问题,我对域控制器备份经常采用两层方法。我每天晚上使用脚本,对域控制器运行Windows Server Backup,把一两周的备份保留 在本地域控制器上。然后共享含有备份的文件夹,只允许备份工具可以访问,由于 许多备份工具不需要. 代理软件就可以备份文件共享区。我有时还把备份文件保存在同一个站点里面的临近 域控制器上。那样,假如 你在某个站点有域控制器1和域控制器2,域控制器 1的备份就保存在域控制器2上的文件共享区上,反之亦然。
这种两层方法的优点包括如下:
?可以减小依赖另一个团队来备份的一些风险。
?万一需要. 进行还原,可以使用手头的本地备份文件立刻 进行还原,不用等另一个团队来进行还原。
?万一备份远程执行,你不用等备份通过广域网从另一个站点拷贝过来。
我在另一篇文章《如何用Windows Server Backup来管理本地备份》(http://briandesmond.com/blog/managing-local-backups-with-windows-server-backup/)中介绍了Windows Server Backup的设置方法,还发布了用来运行Windows Server Backup的脚本。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">域控制器恢复</b>
活动目录的优点之一是,域控制器基本上具有无状态的性质。除了可能担任一个或多个灵活单主机操作(FSMO)角色外,域控制器一般应该是域中其他域控制器的匹配副本,除了复制时可能有些延迟外——延迟长短取决于系统拓扑构造 。假如 某个问题 导致域控制器无法运行,这种无状态性质就十分 好,由于 常常不需要. 从备份来进行复杂的还原。相反,你只需 重新安装Windows,使用Dcpromo将服务器升级为域控制器,将一切 数据复制回来——假定你的域有不止一个域控制器。假如 你的域只有一个域控制器,那么只需 部署第二个域控制器,就能大大降低问题 风险。
不过在你重新安装和重新升级域控制器之前,必须先清理活动目录,这个过程分两步。第一步是捕鱼域控制器可能为域中另一个域控制器担任的任何FSMO角色。假如 你不确信哪些域控制器担任域中的FSMO角色,请在命令提示符窗口运行:
Netdom query fsmo就可以看个到底 。然后,可以使用Ntdsutil适用 工具,捕获FSMO角色。在微软文章《使用 Ntdsutil.exe 捕获 FSMO 角色或将其转移到域控制器》(http://support.microsoft.com/kb/255504)中,依照 “捕获FSMO角色”章节介绍的指示操作即可。值得一提的是,你在捕获FSMO角色时,一条最佳理论 是,千万不要让担任原始角色的域控制器恢复运行。
由于不可能让担任原始FSMO角色的域控制重视 新投入使用,第二步是针对活动目录中失效域控制器的配置,清理元数据。这一步同样可以用Ntdsutil来完成。请依照 微软文章中《域控制器降级失败后,如何删除活动目录中的数据》(http://support.microsoft.com/kb/216498)的指示操作即可。另外,假如 你在使用Server 2008(或以后版本)的活动目录用户和计算机(Active Directory Users and Computers)管理单元,只需 在域控制器组织单元中删除域控制器的计算机帐户,就可以完成这一步。
当需要. 复制的数据量会给网络带来过大的担负 时,通过网络重新升级域控制器可能行不通。这种状况 下,有另外几个方法 。第一个方法 是从备份来还原域控制器的系统状态,然后继续进行。第二个方法 是使用从介质安装(IFM)功能——该功能已添加到Windows 2003版本中。借助IFM,拿来系统状态备份(用Windows 2003中的NTBackup来创建)或IFM介质(用Server 2008或以后版本中的Ntdsutil来创建)后,让Dcpromo指向IFM介质中的活动目录数据库。Windows 2003创建的IFM介质必须先还原到文件系统上的可选用位置,以便Dcpromo可以使用它。域控制器会对介质中的数据库作必要的更改,只复制自介质创建以来发作 更改 的部分。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">活动目录对象的生存时间</b>
删除了一个活动目录对象,其实后台发作 了许多事。最重要的是,删除对象与从活动目录数据库删除记录并没有直接关联。为了保持活动目录复制模型的一致性,对象先要转变成逻辑删除(tombstoned)状态,如图[ghost win7纯净版] 1所示[win7旗舰版系统下载] 。活动目录复制了标明 对象已被删除的属性更改 ,而不是采用散布 式机制来复制从数据库物理删除的内容。
图1:活动目录对象的默认生存时间
从活动目录删除一个对象后,isDeleted属性被设成True,这意味着该对象的简直 一切 属性都被删除。该对象被移到Deleted Objects容器,它的lastKnownParent属性被印上了父对象的可区分 称号 (DN),之后再删除对象。对象被标志 为已删除后,查询活动目录的任何工具都看不到它,除非你添加了一个特殊的LDAP控件,标明 想让活动目录在搜索结果中返回删除对象。各种免费的LDAP查询工具(如AdFind)为你添加了这个LDAP控件,因此 很容易搜索删除对象。
这时,对象仍作为逻辑删除对象存留一段时间。活动目录林的默认逻辑删除生存时间基于活动目录林中第一个域控制器的操作系统。表1显示了默认逻辑删除生存时间。升级活动目录并不改动 活动目录林的逻辑删除生存时间。
表 1:新活动目录林的默认逻辑删除生存时间
第一个域控制器的操作系统 逻辑删除生存时间
Windows 2000 60天
Windows 2000 180天
Windows 2003 R2 60天
Server 2008 180天
Server 2008 R2 180天
表1:新活动目录林的默认逻辑删除生存时间
有时,在每个域控制器上会运行名为垃圾搜集 的后台进行。垃圾搜集 进程(又叫垃圾搜集 器)会搜索数据库,查找存留期比活动目录林的逻辑删除生存时间更久的逻辑删除对象,然后将它们从活动目录数据库删除进来 。
直到某个逻辑删除对象被垃圾搜集 器清空 后,才可以使用名为逻辑删除恢复(tombstone reanimation)的过程来恢复对象。恢复逻辑删除对象时,只能恢复在逻辑删除过程中保留 的几个属性。比方 说,为用户对象保留 的属性包括用户的SID、SID历史和用户名(sAMAccountName)。注意:该列表不包括一些属性,比方 用户的密码、组成员关系或用户身份信息(如姓名和部门)。只需 修改模式中每个属性定义的searchFlags属性,就可以控制列表含有对象被逻辑删除后保留 的属性。你想添加多少属性,就可以添加多少。不过,无法添加链接属性,比方 组成员关系或含有用户邮箱的邮箱数据库。想理解 如何修改searchFlags属性,请参阅MSDN网页“Search-Flags属性”(http://msdn.microsoft.com/en-us/library/ms679765%28VS.85%29.aspx)。
在Server 2008 R2活动目录功能级别(FFL)层面运行的活动目录林中,你可以启用一项名为活动目录回收站的新特性。如图[ghost win7纯净版] 2所示[win7旗舰版系统下载] ,活动目录回收站在对象被删除时与被逻辑删除时之间添加了一个中间状态。当对象处于这个新的删除状态时,被隐藏起来,不出现在搜索结果中,但它的一切 属性(包括组成员关系等链接属性)都保留 下来。
图2:活动目录回收站启用后,活动目录对象的生存时间
可以使用用来恢复逻辑删除对象的同一个过程,将删除对象阶段的对象恢复到删除时的准确 状态。默认状况 下,对象留在删除对象阶段的时间与活动目录林的逻辑删除生存时间一样长,如表1所概述的那样。只需 修改活动目录林的msDS-deletedObjectLifetime属性,就可以更改这个时间段。
删除对象生存时间到期后,垃圾搜集 器将对象移到回收对象阶段。回收对象的功能相当于逻辑删除对象,不过有一个重要区别:你无法恢复回收对象,也无法从备份来还原。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">对象恢复机制</b>
由于不同版本的活动目录日趋成熟,恢复删除对象的机制大有完善。在Windows 2000中,恢复删除对象的独一 方法 是从备份来执行强迫 性还原(authoritative restore)。Windows 2003引入了逻辑删除恢复的概念,这样不需要. 从备份来还原,就可以恢复删除对象的部分拷贝。Server 2008 R2则添加了活动目录回收站,这样不需要. 还原,就可以完全恢复删除对象。
值得一提的是,活动目录备份(以及IFM介质)的放置 时间与逻辑删除生存时间一样。假如 启用了活动目录回收站,放置 时间是删除对象生存时间或回收对象生存时间中较短的那个。比方 说,假如 删除对象生存时间是180天,回收对象生存时间是60天,那么放置 时间是60天。因此 ,不可能从时间比其中一个都长远 的备份来还原删除对象。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">强迫 性还原</b>
需要. 从备份恢复一个对象或一组对象时,强迫 性还原过程常常是个方法 。假如 你之前想域控制器的F8启动菜单上的目录服务还原模式(DSRM)选项有啥用,现在可以选择这个选项来进行强迫 性还原。在DSRM模式下启动时,活动目录从不开启,数据库处于离线状态。你可以在启动进入到DSRM模式的同时,从备份还原活动目录数据库,然后使用Ntdsutil选择需要. 还原的对象。注意:禁止了Server 2008及以后版本的域控制器上的活动目录NTDS服务后,就无法进行还原。
进行强迫 性还原时,活动目录提高了还原对象的内部版本号。这确保域控制器可重新使用后,那些对象复制到了域的其它 部分,还原后版本变成了全局有效。
进行强迫 性还原常常是为了恢复含有大量对象(如用户、用户组、计算机及其他组织单元)的组织单元(OU)。假定 你不当心 删除了contoso.com域中的Executives OU。为了还原该OU及里面的一切对象,需要. 采取下面几个步骤:
1. 启动进入到DSRM模式,用你在Dcpromo期间设置的DSRM密码来登录。
2. 还原不当心 删除前创建的系统状态备份。不要重启。(许多人常犯这错误,面临压力时更会犯)。
3. 开启命令提示符窗口,运行Ntdsutil。
4. 运行命令:
authoritative restore5. 运行命令:
restore subtree
OU=Executives,DC=contoso,DC=com(虽然该命令在这里换了行,但要把它们全部输入到一行上。其他换行的命令也是如此。)
6. 检查并核实确认安全提示符。然后,你会收到像图3所示[win7旗舰版系统下载] 的音讯 。记下文本和生成的LDAP数据交流 格式(LDIF)文件。
图3:标明 强迫 性还原成功的音讯 。
7. 重启域控制器,进入到正常的操作模式。
8. 登录到域控制器,打开命令提示符窗口。运行下列命令,导入第6步期间导出的LDIF文件:
ldifde -i -f
ar_20110221-151131_links_contoso.com.ldf这会导入还原对象的链接属性值(如组成员关系)。
假如 你只需要. 还原一个对象(如删除的计算机对象),可以使用restore object命令,而不是使用第5步中的restore subtree命令。假如 你的活动目录林含有多个域,就要使用第6步中导出的文本文件,为其他域中的域本地组还原组成员关系。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">恢复逻辑删除</b>
有许多工具可以用来恢复逻辑删除对象,但它们最终都执行同样的步骤。所以这里举个例子,标明 使用AdRestore适用 工具来恢复名为John Doe的删除用户需要. 哪些步骤:
1. 打开命令提示符窗口,用下列命令搜索该用户
adrestore DoeAdRestore会搜索删除对象,查找与*doe*匹配的任何对象,并返回输出结果,如图[ghost win7纯净版] 4所示[win7旗舰版系统下载] 。
图4:AdRestore适用 工具的示例输出
2. 确保找到了想要恢复的对象,然后再次运行AdRestore,使用-r参数选项:
adrestore -r Doe3.确认问你是否想恢复该对象的提示。然后,AdRestore会把该对象恢复到之前所在的位置。
如前所述,逻辑删除对象被删除后失去了大部分属性。所以,你得重新添加许多属性,让恢复后的对象再度有用。(一般来说,假如 你使用身份自动管理工具,逻辑删除对象被恢复后,属性会自动重新添加上去。)
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">活动目录回收站的删除恢复</b>
活动目录回收站无疑是最佳的恢复选项,由于 可以还原一切 属性,包括组成员关系等链接属性。不过如前所述,你的活动目录林需要. 在Windows Server 2008 R2 FFL层面运行,才能应用 这个选项。
只需 运行下面这样的命令,就可以使用Windows PowerShell来启用活动目录回收站。
Enable-ADOptionalFeature -Identity
'CN=Recycle Bin Feature,
CN=Optional Features,
CN=Directory Service,
CN=Windows NT,CN=Services,
CN=Configuration,DC=contoso,DC=com'
-Scope ForestOrConfigurationSet
-Target 'contoso.com'注意:启用活动目录回收站不是一个可逆转的步骤。此外,启用活动目录回收站时已经被逻辑操作的对象无法再通过逻辑删除恢复来恢复。
你启用了活动目录回收站后,之后删除的任何对象都可以在活动目录林的删除对象生存时间内完全恢复。有许多方法 来恢复删除对象,但最容易的方法 是使用PowerShell的Restore-ADObject cmdlet。比方 说,下面是恢复删除名为John Doe的用户的几个步骤:
1.从Start(开始)菜单的Administrative Tools(管理工具)部分启动Windows PowerShell活动目录模块。
2. 运行下列命令,搜索删除用户:
Get-ADObject -SearchBase
"CN=Deleted Objects,DC=contoso,DC=com"
-ldapFilter:"(msDs-lastKnownRDN=John Doe)"
-IncludeDeletedObjects
-Properties lastKnownParent确保它是结果集中返回的独一 对象。
3. 用下列命令还原该对象:
Get-ADObject -SearchBase
"CN=Deleted Objects,DC=contoso,DC=com"
-ldapFilter:"(msDs-lastKnownRDN=John Doe)"
-IncludeDeletedObjects
-Properties lastKnownParent |
Restore-ADObject假如 你删除了整个组织单元(OU),就要按正确的顺序来恢复对象(也就是说,某个对象在父对象恢复之前是无法恢复的),以便它们可以恢复到原来所属的位置。微软发布了恢复删除对象树的PowerShell脚本(http://technet.microsoft.com/en-us/library/dd379504%28WS.10%29.aspx),你可以用来执行这项任务。
<strong style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-TOP: 0px; WORD-WRAP: break-word">复杂的任务</b>
为活动目录灾难作规则是项复杂的任务,由于 可能许多部分会出错。不过,假如 你知道如何从出现问题 的域控制器和不当心 删除对象或整棵对象树(如OU)恢复过来,那么完全为灾难作好了防范 。 |
|
|
|
|
|
|