继上两篇文章Windows2008如何进行Active Directory 备份和恢复一和Windows2008如何进行Active Directory 备份和恢复二之后,本文继续介绍如何进行Active Directory 恢复,具体内容如下所述。
域控制器的裸机恢复
备份和恢复最激动人心的改进之一是 WinRE 并入安装过程的方式。从安装媒体中启动 Windows Server 2008 时,您可以选择“Repair your computer”(修复计算机)选项,如图 7 所示。由于这一选项极易被错过,所以在此专门做个提醒。
Figure 7 The Repair your computer option is available on the installation screen (单击该图像获得较大视图)
在安装屏幕上选择修复选项后,Windows 会让我选择一个恢复选项,如图 8 所示。在本例中,我选择“Windows Complete PC Restore”(Windows 完整 PC 还原),这会调用 Windows 恢复环境。
Figure 8 Specifying system recovery options (单击该图像获得较大视图)
在选择要修复的操作系统(通常只有一个选择)后,WinRE 允许您选择要从其进行还原的备份。默认情况下,WinRE 选择最近的完整系统备份,但您可以指定存储在本地磁盘上的其他备份,或在网络中搜索存储在其他服务器文件共享中的备份。
在我的示例中,我选择最近的完整系统备份。下一对话框(如图 9 所示)让我先格式化所有磁盘并重新分区,然后再进行还原。如果您正从某种磁盘故障所导致的问题中恢复,或者已替换了服务器中的一个或多个磁盘驱动器,则这是一个合适的选项。
Figure 9 You can easily format and repartition disks before they're restored (单击该图像获得较大视图)
在两个确认对话框之后,WinRE 启动还原进程,而且服务器重新启动。此方法极为适合在服务器上执行裸机恢复。
域控制器的系统状态恢复
如果您需要从某种与 Active Directory 相关的问题中恢复(例如从备份中恢复删除的 OU),则应将 Active Directory 域服务 (ADDS) 数据库还原至早期状态,而不是还原整个系统。尽管您可以像在 Windows Server 2008 中的服务那样停止 ADDS,但仍需将服务器引导到目录服务还原模式 (DSRM) 中,以对域控制器执行系统状态还原。
更改引导选项以将 Windows Server 2008 引导到 DSRM 中并不像以前那样容易。整个 Windows 引导环境经过了重新设计,以支持新的可扩展固件接口 (EFI),而老式的 boot.ini 文件不再存在。Windows Server 2008 代之以使用引导配置数据 (BCD) 来管理引导过程。
管理 BCD 的最简单方法是使用 BCDEDIT 命令行程序。说明所有 BCDEDIT 命令和选项需要一整篇文章,我在此处只向您显示某些有用的示例。
要将 Windows Server 2008 DC 重新引导到 DSRM 中,请使用以下命令:
C:\> bcdedit /set safeboot dsrepair
这将为默认的引导加载程序项设置安全引导选项。在全新的 Windows Server 2008 安装中,只有一个引导加载程序项 WINLOAD.EXE。要删除安全引导选项并重新引导到正常模式中,请使用以下命令:
C:\> bcdedit /deletevalue safeboot
您可在 DC 上配置两个引导加载程序项——一个用于正常引导,一个用于 DSRM 引导,这样更为便利。您也就可以使用“System Settings”(系统设置)下提供的“Startup and Recovery”(启动和恢复)设置对话框来更改引导选项。要添加新的引导加载程序项,请使用以下命令:
C:\> bcdedit /copy {default}/d "Directory Service Repair Mode"
此操作将通过复制默认的引导加载程序项创建一个新的引导加载程序项。BCDEDIT 将显示与下面类似的内容:
The entry was successfully copied to{c50d4710-a1f0-11dc-9580-0003ff402ae9}
GUID 会识别新项。然后,使用以下命令为 BCD 中新的引导加载程序项设置安全引导选项:
C:\> bcdedit /set {<GUID for new entry>}safeboot dsrepair
您现在可以使用“Startup and Recovery”(启动和恢复)设置(如图 10 所示)从正常引导模式切换到 DSRM 引导模式。
Figure 10 Disable incremental backups on busy volumes
在使用 WBADMIN 启动系统状态还原之前,必须确定要从其进行还原的备份。WBADMIN 可以从完整系统备份、只包含关键系统卷的备份或系统状态备份执行系统状态还原。在上述任一情况下,必须指定要使用的备份版本。确定可用备份版本的最简单方法是使用下面的 WBADMIN 命令:
C:\> wbadmin get versions
WBADMIN 然后将以与图 11 中所示信息类似的形式显示备份版本。请注意,每个备份都有一个备份时间、备份目标、版本标识符(顺便说一下,它是备份以“通用平均时”启动的时间和日期)以及一个可支持恢复操作的类型列表。
wbadmin 1.0 - Backup command-line tool(C) Copyright 2004 Microsoft Corp.Backup time: 11/30/2007 3:47 PMBackup target: Fixed Disk labeled E:Version identifier: 11/30/2007-22:47Can Recover: Application(s), System StateBackup time: 12/1/2007 10:46 PMBackup target: Fixed Disk labeled Backup(E:)Version identifier: 12/02/2007-05:46Can Recover: Volume(s), File(s), Application(s), Bare Metal Recovery, System StateBackup time: 12/2/2007 5:58 PMBackup target: Fixed Disk labeled Backup(E:)Version identifier: 12/03/2007-00:58Can Recover: Volume(s), File(s), Application(s), Bare Metal Recovery, System StateBackup time: 12/3/2007 11:2***MBackup target: Fixed Disk labeled E:Version identifier: 12/03/2007-18:25Can Recover: Application(s), System State
在本例中,我选择最近的备份,并使用以下 WBADMIN 命令启动系统状态还原:
C:\> wbadmin start systemstaterecovery–version:12/03/2007-18:25
这将执行非权威还原。如果您希望执行 SYSVOL 的权威还原,只需将还原的 SYSVOL 副本标记为权威即可,方法是将 authsysvol 选项添加至 WBADMIN 命令。有关此过程的详细信息,请参阅 go.microsoft.com/fwlink/?LinkId=113152。
制作 Active Directory 快照
在 Active Directory 的备份方面,最激动人心的变化之一就是根本不再与 Windows Server Backup 发生关联。在 Windows Server 2008 中,Active Directory 能够提供“卷影复制服务”快照,这可充分利用这一功能。这些快照是正在运行的 Active Directory 服务的极轻型时间点备份。更为可喜的是,它们仅需几秒钟即可创建!随后,您可以装入这些快照并使用基于 LDAP 的正常实用工具(例如 LDP 工具)访问它们。
使用如下所示的 NTDSUTIL 命令制作 ADDS 或 Active Directory 轻型目录服务 (ADLDS) 的快照:
ntdsutil: snapshotsnapshot: activate instance ntdsActive instance set to "ntds".snapshot: createCreating snapshot...Snapshot set {42c44414-c099-4f1e-8bd8-4453ef2534a4} generated successfully.snapshot: quitntdsutil: quit
此 NTDSUTIL 命令序列会创建包含 Active Directory DIT、日志和 SYSVOL 的卷的“卷影复制服务”快照。即使 Active Directory 仍在更新,“卷影复制服务”也会使用写入时复制策略来确保正确维护已制作的快照。请注意,快照不是 DIT 的完整副本。它们实际上只是 DIT 中制作快照后经过修改的磁盘块的集合。通过将这些块与 DIT 的当前副本组合在一起,VSS 所呈现的 Active Directory DIT 正是其在快照时的状态。图 12 显示如何删除旧的或不需要的快照。
C:\> ntdsutilntdsutil: snapshotsnapshot: list all 1: 2007/12/03:23:18 {42c44414-c099-4f1e-8bd8-4453ef2534a4} 2: C: {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022} 3: D: {2bbd739f-905a-431b-9449-11fba01f9931}snapshot: delete 1Snapshot {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022} mounted as C:\$SNAP_200712032318_VOLUMEC$\Snapshot {2bbd739f-905a-431b-9449-11fba01f9931} mounted as C:\$SNAP_200712032318_VOLUMED$\snapshot: quitntdsutil: quitC:\>
装入 Active Directory 快照
为了使用这些快照之一,您必须首先指示“卷影复制服务”使快照可供文件系统使用。为达此目的,可使用 ntdsutil 命令列出可用快照,然后装入感兴趣的快照(请参见图 13)。
C:\> ntdsutilntdsutil: snapshotsnapshot: list all 1: 2007/12/03:23:18 {42c44414-c099-4f1e-8bd8-4453ef2534a4} 2: C: {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022} 3: D: {2bbd739f-905a-431b-9449-11fba01f9931}snapshot: mount 1Snapshot {c0dd71ba-5bcd-4daf-9fbb-5cfbdd168022} mounted as C:\$SNAP_200712032318_VOLUMEC$\Snapshot {2bbd739f-905a-431b-9449-11fba01f9931} mounted as C:\$SNAP_200712032318_VOLUMED$\snapshot: quitntdsutil: quitC:\>
list all" 命令列出了当前由“卷影复制服务”维护的所有可用 Active Directory 快照。"mount 1" 命令装入 Active Directory DIT 和日志卷的选定快照,然后使它们在文件系统中可用。它们位于 C:\$SNAP_200712032318_VOLUMEC$\ 和 C:\$SNAP_200712032318_VOLUMED$\ 中。
如果您查看这些文件夹,则会看到这些卷的整个内容与制作快照时相同。不过,请注意,装入的快照为只读,即:您无法修改已装入快照中的任何文件。
从 Active Directory 快照恢复数据
装入包含 Active Directory 的卷的快照这一任务看起来有些神秘。该如何访问这些快照中所包含的 Active Directory 数据呢?DSAMAIN 命令就是其中的关键。它是运行 ADLDS 的可执行程序。实质上是一个独立的 LDAP 服务器,几乎与 ADDS 共享其所有代码。您可以使用 DSAMAIN 使装入的快照看起来像只读 LDAP 服务器(包含制作快照时的 Active Directory 数据)。
请考虑以下命令:
C:\> dsamain –dbpathc:\$snap_200712032318_volumed$\ntds\dit\ntds.dit -ldapport 10000
这会装入位于 c:\$snap_200712032318_volumed$\ntds\dit 文件夹中的 ntds.dit 文件,并使其可供 TCP 端口 10000(或您指定的任何开放端口)上的 LDAP 操作使用。DSAMAIN 将在所指定数字加一的端口(在本例中为 10001)上打开 LDAPS 端口(用于 LDAP over SSL 的端口)、在所指定数字加二的端口 (10002) 上打开 GC 端口(用于全局编录连接的端口),在所指定数字加三的端口 (10003) 上打开 GCS 端口(全局编录 over SSL)。
您可以使用任何 LDAP 程序(例如 LDP)访问指定端口上装入的 DIT。但在 Windows Server 2008 中,Active Directory 用户和计算机 (ADUC)、站点和服务、域和信任关系以及 ADSIEDIT 均已经过修改,以允许您使用 DSAMAIN 将它们连接到装入的 DIT。如果您右键单击任何 ADUC 导航窗格中的顶层节点,并选择“Change Domain Controller”(更改域控制器),则会看到图 14 中所示的对话框。如果您只键入托管已装入快照的服务器的名称或 IP 地址以及端口(在我的示例中为 localhost:10000),则 ADUC 将连接装入的快照,从而允许您浏览目录的内容(与制作快照时相同)。非常了不起,不是吗?
Figure 14 Connecting Active Directory users and computers to a mounted snapshot (单击该图像获得较大视图)
能够以此方式访问目录数据使多种数据恢复任务都比以前容易多了。例如,要从备份恢复删除的对象,以前需要对现有 DC 执行备份的非权威还原,然后执行已删除对象的权威还原。如果您还原的备份没有正确数据,则必须使用其他备份再次全部启动。现在,使用逻辑删除恢复和快照,您可以快速找到并恢复删除的数据,甚至不必使域控制器脱机即可执行此操作。
不过,有一些限制。例如,每个活动快照都会增加与写入到目录操作关联的磁盘 I/O,因此,生产 DC 任意时间点的活动快照不应超过一或两个。此外,快照保持活动状态的时间越长,“卷影复制服务”变化量存储就会越大——这也会影响性能。当然,简单恢复删除的对象只是恢复问题的***部分。您可能还必须恢复对象的链接属性,例如组成员身份等。但是,即使在此情况下,快照也可以帮助您确定已删除对象所属的所有组。
可靠的 Active Directory 备份和恢复策略
Windows Server 2008 带来了一个全新的备份和恢复系统。某些变化起初可能会让人感到不满。但是,一旦 IT 组织接受这些变化并将新的备份技术融入到日常操作中,更加有效的备份和恢复实施将会使其为之一振。
即使 Windows Server 2008 中备份服务器的方法发生了诸多变化,备份和恢复 Active Directory 的基本策略实际上并无太大变化。因此,在规划策略时,请确保记住这些***实践:
计划定期完整备份系统,这样您便可以在硬件出现故障后恢复 DC。计划 DC 完整备份的频率取决于数据更新的频率、停机时间和/或数据丢失的容差,以及从头开始重新构建 DC 可能需要的工作量。
计划经常性系统状态备份以备份 Active Directory 中的更改。执行系统状态备份的频率取决于丢失 Active Directory 数据的容差。但是,您一天应至少执行一次这种备份。如果您有硬件,则至少在本地磁盘上保持一个或两个系统状态备份,并将旧的系统状态版本复制到 DVD 或网络共享。
确保至少对每个域中的两个 DC 执行系统状态备份。这将在其中一个备份出现错误或不可用时提供一些保障。
请确保使用应用程序分区副本(如果它们已定义)来备份 DC。同时,考虑在 DC 上创建 Windows 恢复环境,以便您可以在关键系统驱动器出现故障时能快速引导到 WinRE 中。
是 NetPro 的 CTO,他自 1996 年起便一直参与开发 Active Directory 软件。他与来自 HP 的 Guido Grillenmeier 一起创办了广受欢迎的 Active Directory 灾难恢复学习班。Gil 还是目录专家会议(请参阅 www.dec2008.com)的创始人。
希望本系列Windows Server 2008进行Active Directory 备份和恢复的知识能够对读者有所帮助。
【编辑推荐】