Exchange 的数据存储方法 如果您希望有一个有效的灾难恢复计划,就必须知道应该进行哪些备份,为此,必须了解 Exchange 2000 Server 如何存储数据和配置信息以及存储在什么地方。
首先也是最重要的问题是,如果是重要的系统数据, Exchange 需要借助其它资源。Microsoft 开发 Exchange 2000 Server 时,其设计理念是让它与 Windows? 2000 Server 紧密集成。这个策略取得的一个结果是,Exchange 不保留自己的目录信息:即,不再有 dir.edb 文件。没有这个文件的原因是 Exchange 没有自己的邮件帐户集;而在 Exchange 2000 中,邮箱只是 Windows 2000 用户帐户的一个属性,因此,它的信息储存在 Active Directory? 中。您会发现 Exchange 2000 Server 的许多配置并不储存在 Exchange 服务器本身,而是存放在 Active Directory,而后者位于网络的域控制器。
这意味着,您的 Exchange 2000 Server 备份和恢复策略可以同 Windows 2000 本身的备份和恢复策略一样好。如果要恢复 Exchange 服务器,需要一个作为域控制器的完全正常的 Windows 2000 服务器,通过它来访问 Active Directory 中的用户邮箱信息。如果贵公司属于大、中型机构,不同的是:您不是负责备份域控制器的管理员,因此需要让别人来备份和运行域控制器。如果您的公司较小,小到 Exchange 服务器可同时充当域控制器,那么您在本地会有一个 Active Directory 实例,这意味着您必须对这台计算机上的 Windows 2000 Server 和 Exchange 2000 Server 有一个统一的备份策略。有关这个主题的详细信息,可以在 Microsoft TechNet Web 站点的"Exchange"下找到,文章标题是"Exchange 2000 Server Database Recovery"。
接下来,您需要详细了解 Exchange 2000 Server 如何存储邮件数据的一些重要信息:存储、存储组、事务日志和检查点文件。您可以在 Microsoft? Exchange 2000 Server Administrator's Companion (第 2 章"Understanding Exchange 2000 Server Storage Architecture"和第 11 章"Using Storage Groups")中找到这些概念的详细介绍,本文将只介绍几个重点。
以前的 Exchange 版本把所有邮件数据都存储在两个文件中:专用邮件存储和公用邮件存储。这些文件会变得很大、难以使用 - 不易备份或恢复。Exchange 2000 Server 用存储组解决了这个问题。每个存储组中最多可以有 6 个数据库,所有数据库都共享一套事务日志和检查点文件。事务日志用于重现自上次备份以来对数据库文件的更改;检查点文件告诉 Exchange 根据事务日志中的什么地方进行重现,以便让 Exchange 知道在什么地方开始重现新的更改。不论是公用存储还是邮箱存储,每个邮件数据库实际上都含有两个文件:一个 .edb 文件存放 MAPI 格式的邮件,另一个是 .stm 文件(用于流式),它保存了接收到的所有非 MAPI 格式的数据,比如收自 POP3 和其它外部邮件格式的数据。根据客户端程序或 Exchange 本身要对数据进行更改的类型,流式文件中的数据被转换成 MAPI 格式并存储在 .edb 文件中。不论是何种更改,如果您想正确地备份 Exchange 存储数据库,就必须同时备份 .edb 和 .stm 文件,以及事务日志和检查点文件。
创建正确的备份和恢复策略
了解 Exchange 如何存储数据后,您必须计划备份哪些内容,如何备份以及何时备份。您的选择取决于贵公司的需求,不过我们可以提供一些指导。有关备份类型和备份策略的全面讨论,请参见 Microsoft? Exchange 2000 Server Administrator's Companion 的第 24 章"Backup and Recovery"。
让我们从最基本的开始:Exchange Server 数据库文件。
Administrator's Companion 详细介绍了 Exchange Server 支持的 5 种基本备份类型(普通、复制、日常、差异和累加备份),以及常用备份策略背后的各种原理:您可以选择每周一次的普通(完全)备份加上每日累加或差异备份;如果系统利用率较高,也可选择每天一次的普通备份再加上每个工作日一次差异备份,以便更快地恢复系统。请参见 Administrator's Companion 或 Microsoft? Exchange 2000 Server Administrator's Pocket Consultant ,了解这些备份的设置步骤。如果您是经验丰富的 Exchange 管理员,您应该已经非常熟悉这些概念。
不过重要的是要注意 - 特别是如果您熟悉 Exchange 5.5 和较早的版本 - 现在有一种新的备份类型:系统状态备份。系统状态备份能获得系统的当前状态和记录信息(这是普通的文件备份和驱动器备份无法捕获的),因为它的信息存放在操作系统保持打开的文件中。包括: Active Directory(在域控制器上) 系统卷(在域控制器上) Internet Information Services (IIS) 配置数据库(Exchange 2000 Server 利用 IIS 通过简单邮件传输协议 (SMTP) 来传输邮件)。 引导文件 COM+ 类注册数据库 注册表 Certificate Server(如果也在同一系统中运行的话) 注:某些第三方的备份解决方案可以备份打开的文件,所以它们可能会备份这些系统文件的副本;但是不保证您能获得最新的更改信息。请使用 Windows NT? Backup for Windows 2000 Server 中的 System State Backup 功能。
另一个新特点既属于新技术,又属于团队协作,二者同样重要:与您的 Windows 2000 管理员协调域控制器的备份和恢复事宜,以便在需要恢复 Exchange 服务器的时候网络上有一个正常工作的 Windows 2000 域控制器可以使用。如果网络上还运行密钥管理服务器 (KMS),您还需要为它建立一个类似的计划,确保远程证书颁发机构的计算机严格根据安排的日程进行备份,因为恢复 Exchange 服务器的时候也需要恢复并使用这些计算机。 除了标准的数据库备份、系统状态备份和协调 Active Directory 和 KMS 备份外,您还需要对系统驱动器和装有重要应用程序和数据的其它逻辑驱动器进行驱动器完全备份;这些备份同数据库备份一样,也需要定期管理,以便随时都有最新的当前备份。有了这些备份,即使服务器完全丢失,您也可以进行全面恢复,下面将讨论这个过程。 逐步进行灾难恢复 现在让我们从头开始逐步完成 Exchange 恢复的整个过程。这个过程不仅受是否有完善的 Exchange 备份的影响,还会受 Active Directory 信息备份是否完备的影响。我们就从这里开始。 因为用户数据(包括邮箱属性和其它 Exchange Server 配置数据)并不存放在 Exchange Server 本身,而是存放在 Active Directory 中,所以您的第一步应该是在域控制器上设置并运行 Active Directory。然后恢复 Windows 2000 Server 和网络连接,以便恢复 Exchange 时可以从域控制器获得配置数据,避免在 Exchange 计算机上创建有冲突的信息。让 Exchange Setup 程序进行这步操作的命令是使用 /disasterrecovery 开关,这个开关让安装程序搜索网络上的域控制器,并从 Active Directory 上获得所有的设置配置参数,比如哪些用户有邮箱,数据库文件的路径应该是什么等等。 找到网络上的一个活动域控制器(如果使用 KMS,还要找到一个 KMS 证书颁发机构服务器)后,就可以开始了。您需要: 与已丢失的硬件相匹配的替换硬件。 Windows 2000 Server 和 Exchange 2000 Server 安装盘,包括所有可用的服务包和修补程序。 完全的驱动器备份。 系统状态备份。 Exchange 数据库备份。 所有这些准备就绪后,您就可以对全面灾难进行灾后重建了。
请按这些步骤操作: 配置替换硬件。 创建一套与原服务器配置一样的逻辑驱动器。 按照原来安装的 Windows 2000 Server 的安装驱动器和路径安装同样版本的 Windows 2000 Server 作为独立服务器,使用的服务器名称与原名称相同。 恢复驱动器完全备份。 恢复系统状态备份。进行这步操作之前,确保域控制器已经重新引导并恢复,并且可以通过网络访问。完成系统状态恢复可以让您回到Active Directory 和 IIS 配置数据库的最新状态。 用 /disasterrecovery 开关重新安装 Exchange 2000 Server。这个开关让 Setup 程序读取 Active Directory 中的配置信息并恢复 Setup 在 Active Directory 中找到的所有原设置。 恢复 Exchange 2000 Server 数据库(包括所有的存储组),运行事务日志。确保选择了将数据库恢复到原路径;在 Windows NT Backup for Windows 2000 Server 中,这是个简单选项。 搞定!
现在,您的 Exchange 2000 Server 应该已经安装完毕,可以运行了,已经完全从灾难中恢复过来。 简化您的生活 我们已经看到,您需要事先正确准备许多东西才能从全面灾难中恢复 Exchange 服务器。以下一些建议可以帮助您达到目的。 保留正确记录 如果您不知道 Exchange 服务器原来的配置,就很难再现服务器原貌了。请务必正确记录 Exchange 服务器的名称、安装 Exchange 文件的文件夹名称、存储数据库文件的驱动器的文件夹树、所有硬件组件的完整规格、驱动器磁盘硬件备份和所有重要软件安装盘备份,以及逻辑驱动器的规格。
您很可能需要准备所有这些才能正确恢复 Exchange 服务器。 开发合作式恢复策略 没有 Active Directory 是不可能完全恢复 Exchange 2000 Server 的,因此,请务必掌握您的网络域控制器的备份策略:每隔多长时间进行哪种备份,由谁负责,备份文件存储到什么地方。请与其它管理员商量,为所有服务器开发一套全面的灾难备份和恢复策略,并让 Exchange 计划成为主计划的一个组成部分。 跟踪备份 为 Exchange 数据库文件制定一个定期备份的计划并坚决执行该计划。同样,还要遵守以下备份原则: 永远不要删除事务日志和检查点文件。根据要恢复的具体内容和时间,在日志文件不完全的情况下重现事务日志可能会损坏邮件数据库。 每次安装新的应用程序和用补丁和服务包进行更新时都要进行驱动器完全备份。 每次更改服务器配置时(不论是系统设置还是应用程序设置)都要进行系统状态备份。 让备份要求成为更改控制步骤的一部分,如果没有最新的备份,决不能安装新软件、更新或修补程序,以便在新软件安装或更新失败时能够恢复。 维护备份服务器 显然,如果您现在的 Exchange 服务器被破坏,您至少需要更换组件;但是,如果您在网络上的位置遭受灾难,您会发现需要更换整台计算机。不论是哪种情况,保留一个 Exchange 服务器备份(硬件和驱动器完全一样)会方便得多,这样您就可直接换上一台新服务器,麻烦最少。如果您的备份服务器并不完全一样,请运行测试恢复,确保备份硬件的驱动器与主安装没有冲突。
备份
本节稍后将假设您使用 Windows NT 备份作为备份和恢复软件。但是,此处所包含的很多信息与您选用的备份解决方案有关。
执行备份时要考虑的一个主要事项是其所花费的时间。在运行 Exchange 的服务器上执行存储内容的联机备份时,应延缓其它联机维护操作。因此,若要在每晚留出一定的时间来进行其它联机维护操作,就需尽量缩短备份所花费的时间。同样,如果备份这些服务器所花的时间很长,自然也会花费很长的时间来恢复它们,为了满足 SLA 的需要,应将恢复时间缩至最短。
运行 Exchange 的服务器可能由多个存储器和存储组组成。当联机备份存储器内容时,您的备份工具应确保备份相应的 .stm、.edb 和 .log 文件。尽管可以单独备份存储器,还是应对存储组逐个进行备份。存储组中的每个存储器按一个接一个的顺序进行备份。因此,您可能需要调整存储器的大小,以确保可以在定义的备份窗口中备份存储组中的所有存储器。与之相比,您可以并行备份存储组;如果您这样做,就不必增加备份所花的时间。
使备份时间最短的一种最佳方法是在磁盘而不是在磁带上进行备份。随后在非现场位置对生成的文件进行文件备份。通常这些文件可以备份到磁盘,并在不同位置分别保存该磁盘的多个副本。备份到磁盘的优点还有:如果磁盘备份在恢复时可用,则可以确保缩短恢复时间。
缩短备份时间的另一种方法是执行增量和/或差异备份。但是,在可能的情况下最好不要执行这种备份,因为它们可能会增加恢复时间,保持恢复时间最短对满足 SLA 至关重要。
操作管理员必须确保备份安全存储在受到妥善保护的地方,不会受到自然灾害、火灾和偷窃的威胁。
注:认真考虑所选择的非现场存储位置。尤其是,如果选择在其它国家存储数据,可能会遇到法律问题。有些 Exchange 数据(如 Outlook 合同)被当作私有数据,并可能受到某些国家的数据保护条例的保护。
为确保能够对运行 Exchange 的服务器进行完全恢复,仅仅备份存储器和日志文件是不够的。没有 Active Directory,Exchange 就无法使用,因此尽管 Active Directory 备份本身不是恢复的一部分,但仍须确保对其进行正确备份。
在 Exchange System Manager 中,对协议容器中的服务器进行配置更改时,大多数更改会写入到 Microsoft Internet 信息服务 (IIS) 元数据库中(某些相同的信息还保存在 Active Directory 中)。因此不但要备份 Active Directory,还应成功备份 IIS 元数据库。
使用 Internet 服务管理器的 Microsoft 管理控制台 (MMC) 单元备份元数据库可以简单地备份 metabase.bin 文件。但是,在恢复时还需要专用于元数据库及安装的安全密钥,才能启动元数据库。在备份服务器的系统状态时会备份这些内容。
在日常的 Exchange 操作中,元数据库会经常发生变化,因此需要象备份运行 Exchange 的服务器那样经常备份元数据库。成功备份元数据库可以避免在恢复服务器时重新配置设置。
如果利用 Exchange 中的密钥管理服务 (KMS) 功能为电子邮件提供保护,那么成功备份正确的组件将至关重要。否则就会以丢失整个企业的邮件而告终。必需确保备份以下组件:
证书颁发机构 (CA) 为各个 CA 服务器颁发的证书
保护 CA 证书的密码
KMS 数据库本身
还需确保将 KMS 数据库的启动密码保存在安全位置。
如果 Exchange 2000 与 Microsoft Exchange Server 5.5 共存,则可能还需要备份 Site Replication Service (SRS)。但这并不是必不可少的,它已超出了本指南的范围。
最后,还须确保保存每个 Exchange 服务器设置的完整记录。这可以为类似的服务器配置类似的硬件规格。通常,所有此类信息都位于配置管理数据库中。有关更改及配置管理的详细信息,请参阅第 3 章。
脱机备份
与 Exchange 的联机备份一样,在某些情况下可能比较适合进行脱机备份。在许多产品环境中并不是总能进行脱机备份,因为让数据库脱机会影响到是否能够满足服务等级协议。但是,在可以执行脱机备份的情况下,如果恢复 Exchange 服务器时联机备份不能如期工作,脱机备份可为您提供一种非常有用的可选方法。
每个 Exchange 2000 存储器都由一个 .edb 文件和一个 .stm 文件组成。对于服务器上多达 20 个的公用和专用存储器,每个服务器需要备份多达 40 个文件。在正确关闭信息存储器时,所有日志文件信息将写入到相应的 .edb 和 .stm 数据库中,因此在脱机备份时不必备份日志文件。
磁盘映像
您可能想在服务器上安装 Exchange 之前,立即对服务器进行磁盘映像。这样在服务器完全失败时,可以使恢复服务器非常迅速地创建所有适当的设置。
恢复
为确保迅速恢复 Exchange 2000,需要以下各项:
可用硬件。
Microsoft Windows 2000 Server 和 Exchange 2000 Server 软件,以及相应的服务软件包和修补程序。
所需的任何其它 Microsoft 或第三方软件。
系统驱动器和其它安装有重要应用程序或数据的逻辑驱动器的完整备份。
系统状态备份。
Exchange 数据库备份。除信息存储器数据库的备份之外,可能还需要辅助数据库(如 SRS 数据库和 KMS 数据库)的备份。
要执行的恢复可能具有明显不同的等级,它们可以从恢复单个邮件到恢复 Exchange 配置数据库(也就是恢复 Active Directory)。
恢复个别邮件
Exchange 2000 中有一个针对删除项目保留时间的设置。默认情况下,该设置值为零。恢复个别邮件的最简单方式就是增加该设置值。如果有备份软件可以提供个别邮件恢复,则可能建议您将邮件项目保留时间设置为统一值,并将该值作为 SLA 邮件等级的保留时间。
恢复丢失的邮箱
Exchange 2000 中有一个针对删除邮箱保留时间的设置。默认情况下设置为 30 天(尽管原则默认值设置为零)。在删除 Exchange 2000 邮箱时,邮箱内容不再立即从信息存储器数据库中立即删除。而是继续保留一段已定义的时间。在删除邮箱位于已断开连接列表中的这段时间,可以将邮箱连接到其它用户。
若要将 Exchange 2000 邮箱连接到其它用户,请执行以下操作:
启动 Exchange System Manager。
找到包含已断开连接邮箱的数据库,然后单击该数据库中的“邮箱”对象。
如果邮箱已标记为断开连接,请用鼠标右键单击“邮箱”对象,然后通过单击 Run Cleanup Agent 强制运行 Mailbox Cleanup Agent。
右击断开连接的邮箱,然后单击“重新连接”。显示一对话框,可在其中选择新的邮箱主人。
可能再次建议您定义 SLA,以便邮箱恢复不可能在“管理员”程序指定的时间段之外执行。当邮箱恢复可能超出该时间范围时,根据备份软件的要求,也许只有在其它 Windows 2000 目录林中将整个 Exchange 数据库恢复到服务器上,才能获得相应的丢失邮箱。
恢复 Exchange 存储器和存储组
此时,数据库可能出现问题,例如,某个数据库损坏并需要从备份进行恢复。环境中的其它部分未受到影响。
如果是从磁带进行恢复,那么在进行任何操作之前,应确保对现有数据库文件进行备份。这样做的原因是,当从磁盘进行恢复时,有可能发现磁带已坏。即使数据库存在问题,仍可通过使用故障诊断方法来恢复存档文件。如果您始终确保数据库驱动器的可用空间不低于 50%,那么可以在同一逻辑驱动器上迅速保存“崩溃”数据库的副本,这样可以大大降低复制这些文件所花的时间,从而缩短恢复时间。
当进行恢复时,需确保已启动了信息存储服务,并且已卸载了要恢复的数据库。应为选择一个供恢复使用的临时文件夹。其中包括恢复的日志和补丁文件,以及 restore.env(一个用来确保日志和补丁文件在恢复之后重新正常工作的二进制文件)。
如果要恢复一个完全备份(与增量和差异备份相对应),应确保在备份设置中选择“最近还原组”。这可以确保在恢复之后重新运行日志文件和补丁文件,将您带回到出现故障的大致位置。只有选中“最近还原组”选项,才能安装数据库;因此如果忘记进行此项操作,就必须重新运行恢复或使用 Eseutil 来指定确实是最近还原组。
如果要同时恢复多个存储组,必须为每个存储组指定不同的临时文件夹。这样可以确保不同的 restore.envs 不会相互覆盖。
通常不建议恢复脱机备份,因为它不允许前滚到当前状态。但是,当无法从联机备份进行恢复时,脱机备份会非常有用。此处要重点了解的事项是:.edb 和 .stm 文件应视为一个整体,并一起恢复到同一目录下。此外,在执行恢复时,应在复制新内容之前删除恢复服务器上的所有日志和数据库文件。在重新启动服务后,恢复服务器将创建其自己的新日志文件。
Exchange Server 的完全恢复
在运行 Exchange 的服务器可能失败的任何地方,都需要用硬件来执行恢复。缺少冗余硬件常常是造成停机(由整个服务器失败而引起)的最重要因素。如果将每个 Exchange 2000 服务器角色的硬件标准化,就会大大减少所需的 Exchange 2000 备用计算机的数量,并使恢复成为更加标准的过程。在大多数情况下,备用服务器需要实际位于数据中心处,因此减少数据中心数也可减少所需的冗余硬件数量,以确保恢复时间更短。
即使 Exchange Server 计算机遭到灾难性的硬件故障,也不会丢失其大多数配置信息,因为它存储在 Active Directory 中,而 Active Directory 可在许多其它服务器上获得。
应确保能将该服务器迅速创建到可以在上面安装 Exchange 的位置。这意味着服务器将需要运行 Exchange 先前所运行的 Windows 2000 版本,具有与以前服务器相同的名称并位于相同的域中。实现这些的最快捷方式之一是使用磁盘映像(如上节所述)。
完成此操作之后,还不到简单地重新安装 Exchange 的地步。此时尚无法进行重新安装,因为 Exchange 配置信息已存在于 Active Directory 中,重新安装将试图(但无法)覆盖它。因此,应通过 /disasterrecovery 开关运行安装程序。此开关假设 Exchange 的配置信息已经就绪,并仅安装程序文件和注册表设置。它搜索 Active Directory 中有关 Exchange Server 对象的信息,并根据找到的信息重新配置本地设置。
在运行 /disasterrecovery 开关时,确保了解系统上所安装的组件非常重要,因为在执行恢复时需要明确说明这些组件。此信息应位于您的配置管理数据库中,但在 Active Directory 的服务器对象中当然也可以看到。
在恢复 Exchange Server 之后,随后将进行有关恢复存储器(如前所述),恢复 IIS metabase,可能还有恢复 SRS、KMS 和 CA 数据库方面的操作。
在 Active Directory 失败之后恢复 Exchange
操作中主要应注意的问题之一是确保从不发生这种情况。正象您早已看到的那样,Exchange 2000 完全依赖于 Active Directory。如果要对 Exchange 环境进行全面的保护,则应尽量确保 Active Directory 具有最大的弹性。
但是,这并不意味着 Active Directory 失败会使 Exchange 2000 完全无法使用。只要获得有关 Exchange 配置的信息,就应可以恢复 Exchange 组织,这些信息包括各个服务器的 Exchange 存储组和存储器名称,以及称为各个管理组的 legacyExchangeDN 属性的密钥项。该属性旨在使运行 Exchange 5.5 和 Exchange 2000 的服务器能够相互进行通讯,它用于所有运行 Exchange 的服务器,且服务器的 legacyExchangeDN 必须与管理组的该属性相匹配。值得注意的是,这种跨企业的过程会花费大量的时间、精力和金钱,所以应尽一切可能避免这种情况。
备用服务器恢复
出于某些原因,您可能希望执行备用服务器恢复。最常见的原因就是,您需要执行某些类型的数据库维护,并且不希望该维护导致任何数据库故障(但应注意,除非备用服务器的硬件完全相同,否则无法保证在实际环境中会有相同的结果)。进行备用服务器恢复的另一个原因是为了恢复 Exchange Server 中到期的邮箱。
备用服务器恢复如同在丢失 Active Directory 后重建 Exchange,只不过是规模要小得多。如果要在原服务器存在的情况下将 Exchange 存储器恢复到其它服务器上,第二个服务器必须位于不同的 Windows 2000 目录林中。您需要了解原服务器上的存储组和数据库名称,以及服务器所属管理组的 legacyExchangeDN。
您可能最终会经常执行备用服务器恢复。例如,可能执行该过程,随后对数据库执行脱机碎片整理。如果脱机碎片整理过程明显减少了数据库的大小,则可以随后将产品服务器脱机来执行碎片整理(取决于您的 SLA 条款)。
如果备用服务器恢复是您操作例程中的常规组成部分(这一点可能将在下一节中加以论述),则应永久安装一个单独的 Windows 2000 目录林。该目录林将包括已设置好所有正确 legacyExchangeDN 的管理组,避免在每次进行备用服务器恢复时必须重建管理组。
恢复测试
在恢复过程中减少停机的关键是:假定将会发生系统故障,并在确实发生时有充分的准备。它包括可用硬件、软件和备份设置。还需要使接受过恢复操作培训的人员随时可用。
在培训人员的过程中,应注意:对于大多数灾难恢复过程来说,在第一台服务器联机的同时将系统恢复到另一台联机服务器上是非常困难的,因为在此情况下必须将其恢复到其它目录林中。模拟在紧急情况下必须要执行的恢复类型的最佳方式是使用与主网络完全分离的测试网络。这样可以模拟从存储器故障到服务器全部硬件故障的所有情况,并了解在此情况下要作些什么。
但是,这并不意味着不应执行备用服务器恢复。这些恢复可以告诉我们一些其它信息,例如,备份软件/磁带/存储器过程工作正常,特定的实际数据库可以进行备份和恢复而不会出现任何故障。归根结底,如果恢复本身将由于故障磁带而失败,那么即使让受过严格培训的人员进行恢复也没有任何意义。应确保至少每半年将每一个数据库恢复到备用服务器上一次。
操作管理员应负责确保组织已对灾难恢复做好了充分准备。其中包括对各个 Exchange 服务器和各个备份设备执行的常规恢复,该操作由恢复激活时所涉及的人员执行。
,