本文讨论将域控制器从灾难状态(例如由于硬件或软件故障引起的数据库故障)进行恢复的步骤。此类灾难通常会导致域控制器失效,而且会使计算机无法正常引导。
摘要
Active Directory™ 服务以及保证其顺利运行所需的系统是 Windows® 2000 Server 操作系统的核心。系统管理员必须了解如何使这些关键的系统保持正常运行,以及在出现故障时如何采取应对措施。
在 Active Directory 基础结构中,域控制器可以充当多种角色 — 全局编录 (GC)、操作主机 (OM) 以及单一域控制器。本文中介绍了在出现故障后恢复 Active Directory 数据库的步骤,而且还介绍了将服务器还原为特定角色所必需的特殊要求。
本文档中介绍的步骤已经经过了 Compaq QTEST Windows 2000 机构进行的恢复操作的验证。QTEST 是基于 Windows 2000 的服务器的全球部署,Compaq 顾问用它来验证和测试不同的部署方案。
引言
本文讨论将域控制器从灾难状态(例如由于硬件或软件故障引起的数据库故障)进行恢复的步骤。此类灾难通常会导致域控制器失效,而且会使计算机无法正常引导。导致灾难的另一个原因是人为因素,例如将包含错误的数据复制到公司的其它域控制器上。
本文提供有关对运行 Active Directory 的域控制器(不运行其它服务)进行恢复的信息。如果该计算机上还安装有其它服务,例如域名系统 (DNS) 或 Internet 信息服务 (IIS),则可能还需要其它步骤,但是这些步骤不包括在本文中。
本文中的大多数示例都是基于 Windows 2000 备份实用程序 (ntbackup.exe) 的,该程序是 Windows 2000 中附带的默认备份应用程序。有关该工具的更多信息,可以在附录 IV 中找到。用户可以有自己喜欢的备份应用程序,但是本文中的内容仍然适用。
本文不讨论涉及 Active Directory 的故障排除问题。而是用于解决如下情况:所有的故障排除手段都已经失败,并且 Active Directory 无法正常运行,在这种情况下用户无法将域管理器引导到正常模式。
本文假定用户具有关于 Active Directory 及其相关组件的预备知识。有关 Active Directory 的信息,请阅读 Windows 2000 Server Resource Kit 中的 Distributed Systems Guide 一书。
系统管理员可以使用本文中的信息来制定灾难恢复规划,但是本文还必须与本单位内部环境以及现有灾难恢复策略中的具体信息相结合。
Active Directory 概述
Active Directory 服务是 Windows 2000 的目录服务。它是操作系统的核心组件,为企业和操作系统中的其它组件提供基本数据。
Active Directory 为管理员提供组织网络资源,管理用户、计算机和应用程序所需要的中心服务。
在 Active Directory 中可以存储许多不同的对象,包括:
用户。
组。
安全凭据,例如证书。
系统资源,例如计算机(或服务器)和打印机。
复制组件,设置本身也是 Active Directory 中的对象。
COM 组件配置,以前它存储在 Windows NT 中的注册表中,现在则存储在 Active Directory 的类中。
控制工作环境的规则和策略。
Active Directory 数据库
Active Directory 是一个事务处理数据库系统,它使用日志文件来支持回滚语法,从而确保将事务提交到数据库中。与 Active Directory 关联的文件包括:
Ntds.dit — 数据库。
Edbxxxxx.log — 事务日志。
Edb.chk — 检查点文件。
Res1.log 和 Res2.log — 预留的日志文件。
Ntds.dit 会随着数据库的填充而不断增大。但是,日志的大小却是固定的 (10 MB)。对数据库进行的任何更改都会被追加到当前的日志文件中,而且其磁盘映像会不断保持更新。
Edb.log 是当前的日志文件。对数据库进行更改后,会将该更改写入到 Edb.log 文件中。当 Edb.log 文件充满事务之后,它会被重新命名为 Edbxxxxx.log。(从 00001 开始,并使用十六进制累加。) 由于 Active Directory 使用循环记录,所以在旧日志文件写入数据库之后,这些旧日志文件会及时删除。在任何时刻都可以找到 edb.log 文件,而且还可能有一个或多个 Edbxxxxx.log 文件。
Res1.log 和 Res2.log 是“占位符”— 用来在此驱动器上预留(在此情况下)最后的 20 MB 磁盘空间。这是为了给日志文件提供足够的空间,以便在其它所有磁盘空间都已使用的情况下可以正常关机。
Edb.chk 文件存储数据库的检查点,这些检查点标识数据库引擎需要重复播放日志的点,通常在恢复或初始化时。
出于性能考虑,日志文件应该位于数据库所在磁盘以外的其它磁盘上,以减少磁盘争用情况。
在进行备份时,可能会创建新的日志文件。如前所述,由于要进行循环记录,所以需要删除该日志文件(如常规旧日志文件)。
Active Directory 服务器和角色
authentication service域控制器 (DC) 是上面驻留有域数据库并执行验证服务的服务器。在 Windows 2000 Server 中,域数据库是 Active Directory 数据库的一部分。在 Windows 2000 中,对象更改可以在该环境内的任何 DC 上执行,而不是象在 Windows NT Server 4.0 中那样,只能在主域控制器 (PDC) 上进行。
DC 必须启动并执行复制操作,以确保环境中的所有 DC 上都驻留有当前和正确的目录版本。另外,在特定目录林中的所有域控制器上都驻留有目录林配置和架构容器的副本。
域控制器还可以作为全局编录或充当如下所述的特定角色。为应对可能出现的故障情况,知道特定 DC 是一个 GC 还是承担了操作主机角色非常重要,因为只有这样才能采取正确的行动。
全局编录
全局编录的主要功能是在整个 Active Directory 目录林内进行快速和有效的搜索。GC 拥有它所属的域中所有对象的可读/写的完全副本,以及目录林中其它每一个域中的只读部分副本(所有对象,但不包括部分属性集)。因此,全局编录使目录林内的目录结构对于最终用户而言是透明的,从而为用户创造了一个使得在目录中查找对象变得简单和有效的搜索机制。
另外,为在本机 Windows 2000 域中进行通用组成员和用户主要名称 (UPN) 枚举,也需要全局编录。因此,如果 DC 不能在客户端登录时联系到 GC,则客户端将只接收到缓存的本地登录凭据,而对远程资源进行的访问将被拒绝。
注意 若要知道 DC 是否为全局编录服务器,请查看站点和服务管理单元中的 ntdsDSA 对象的属性。(在域控制器的 Ntds 设置上单击鼠标右键,然后选择属性。) 如果选中全局编录复选框,则该 DC 就是一台全局编录服务器。可以在任何现用的 DC 上查看该管理单元,以检查出现故障的 DC 是否为 GC。
操作主机服务器
Active Directory 支持多主机更新。在每一个 DC 上都驻留有其目录分区的可读/写版本。因此,Active Directory 必须可以进行存在冲突的更改,例如在不同的 DC 上同时对目录中同一对象进行的更改。Active Directory 使用定义完善的冲突解决方法,从而使所有的 DC 最终都趋近相同的值。
尽管具有该定义完善的方法,但有时防止出现冲突比在出现问题之后解决冲突要好。在冲突解决方法不适用时,Active Directory 中的操作主机会防止进行冲突更新。
Active Directory 定义了五种操作主机角色:
架构主机
域命名主机
相对标识号 (RID) 主机
主域控制器模拟器 (PDCE)
基础结构主机
架构主机和域命名主机是按目录林分配的角色,表示在整个目录林中只有一个架构主机和一个域命名主机。其它操作主机角色都是按照域分配的角色,表示目录林中的每一个域都有自己的 RID 主机、PDCE 和基础结构主机。
若要检查哪一台 DC 具有域命名主机角色,请打开“域和信任”管理单元。若要检查架构主机,请打开“架构”管理单元。对于任意按照域分配的角色,请检查“用户和计算机”管理单元。在每一个管理单元的最高层容器(在左侧窗格中),单击鼠标右键并选择操作主机。
“架构”管理单元不是随 Windows 2000 Server 一起提供的默认 MMC 管理单元。若要使它出现在可用管理单元列表中,必须从 Windows 2000 Server CD 中安装管理工具软件包 (Adminpak.msi)。
若要注册“架构”管理单元,请在命令提示符下或在开始菜单上的运行命令中键入 Regsvr32 schmmgmt.dll。
架构主机
具有架构主机角色的 DC 是可以更新目录架构的唯一 DC。这些架构更新会从架构主机复制到目录林中的所有其它域控制器中。
域命名主机
具有域命名主机角色的 DC 是可以执行以下任务的唯一 DC:
向目录林中添加新域。
从目录林中删除现有的域。
添加或删除描述外部目录的交叉引用对象。
相对标识号 (RID) 主机
此操作主机负责向其它 DC 分配 RID 池。只有一个服务器执行此任务。在创建安全主体(例如用户、组或计算机)时,需要将 RID 与域范围内的标识符相结合,以创建唯一的安全标识符 (SID)。
每一个 Windows 2000 DC 都会收到用于创建对象的 RID 池(默认为 512)。RID 主机通过分配不同的池来确保这些 ID 在每一个 DC 上都是唯一的。通过 RID 主机,还可以在同一目录林中的不同域之间移动所有对象。