Exchange 联机备份在 Exchange Server 2003 中的工作原理

 

上一次修改主题: 2005-05-23

可以在用户联机时对 Microsoft® Exchange Server 数据库进行备份,即使有新的数据写入到该数据库时也是如此。由于 Exchange 的事务日志记录机制(如附录 B“Exchange 事务日志记录”中所述)使得可以实现该功能。

开始联机备份时,备份程序将数据库文件传送到备份媒体。继续对数据库进行更改,甚至更改已经备份过的部分数据库。稍后将从事务日志文件重新构建这些未备份的更改。

备份数据库文件后,Exchange 将向备份集复制至少一个(通常多个)事务日志。这些事务日志是在从备份开始到刚好结束的时间内生成的。

note注意:
在 Exchange 2000 Service Pack 2 之前,备份期间会创建一个“修补文件”(数据库名称.pat)并和备份集保存在一起。要重新构建事务日志中不应保留的一小部分可能的数据库更改,需要此修补文件。在新版本中,Exchange 不再将修补数据保存到单独文件中,而是将其插入到数据库文件的末尾。有关还原联机备份时如何使用修补数据的详细信息,请参阅事务日志文件重播:Exchange Server 2003 中的软恢复和硬恢复

还原联机备份时,总是将至少一个事务日志重播到联机备份。如果将事务日志重播到联机备份之前检查到还原的数据库头,就会看到它显示“异常关闭”。从联机备份还原数据库然后启动该数据库,类似于在系统崩溃后启动数据库。

在发生意外数据库停止后重播日志称为“软恢复”。在还原联机备份后重播日志称为“硬恢复”。这两种恢复之间最重要的区别是硬恢复期间有额外修补数据的应用程序。

因为 Exchange 在每次联机备份恢复期间都重播事务日志,所以可以添加比备份磁带上原有的事务日志更多的日志来进行重播。如果 E0000007.log 位于备份磁带上,而且您拥有 E0000008.log 及其他依此类推的日志,则只要存在一系列连续的日志,就可以在恢复联机备份后继续重播日志文件。即使您的备份是几天前的,只要拥有在进行此备份后生成的所有事务日志,也可以将其完全恢复为最新的。

假设您在星期一进行了数据库的联机备份。星期三时由于硬盘故障损坏了数据库文件,要求您还原星期一的备份。如果最后两天的事务日志文件仍然存在,则可以还原星期一的备份并通过从事务日志文件检索数据来恢复星期二和星期三的所有数据。

note注意:
在数据库文件以外的专用磁盘上保存事务日志文件是一种 Exchange 最佳实践。这样做不仅可以提高数据库的性能,而且一旦数据库磁盘损坏还可以提供容错能力。

Exchange 数据库的联机备份共有四种:普通备份、复制备份、增量备份和差异备份。您可能熟悉这些术语;但是,Exchange 赋给每个术语的含义不同于传统的用法:

  • 普通备份 备份程序备份数据库文件(.edb 和 .stm)、修补数据和至少一个日志文件。完成备份后,备份程序将删除备份开始时检查点之前的所有日志文件;这样可以防止日志文件累积,以免占用所有可用的驱动器空间。注意在当前版本中,Exchange 不再用单独文件中保留修补信息,而是在完成备份过程后将修补首页附加到数据库文件末尾。
  • 复制备份 与常规备份相同,但是备份程序不删除旧的日志文件,并且不更新数据库头以表明已经进行备份。
  • 增量备份 备份程序只备份日志文件,不备份数据库文件。将常规备份之后的日志文件复制到备份媒体,然后从磁盘清除。要还原增量备份,同时必须还原一个以前的普通备份备份或复制备份,因为增量备份不包含数据库文件。假定在两个备份之间存在连续的日志,重播完整备份的日志后即可重播增量备份的事务日志。
  • 差异备份 与增量备份相同,但是备份程序不从磁盘删除旧的日志文件。

就实际位于备份媒体上的文件而言,普通备份和复制备份之间没有区别,增量备份和差异备份之间也没有区别。

还原联机备份

Exchange 5.5 只有一个存储组。它只包含两个数据库,一个邮箱数据库和一个公用文件夹数据库。启动信息存储就会装入这两个数据库,停止信息存储就会断开这两个数据库。但是,从 Exchange 2000 开始,一台服务器最多可容纳分布在四个存储组的 20 个 Exchange 存储数据库。每个数据库能够独立装入和卸除。这种灵活性对还原联机备份有很重要的影响。

如上所述,一个存储组中的所有数据库共享同一组日志文件,而且还原联机备份需要重播某些日志文件。
使用 Exchange 2003,现在可以在其他数据库运行时还原存储组中的一个数据库。
这种能力意味着若干种还原日志文件的方案可能导致硬恢复故障或干扰存储组中其他数据库的运行。另外,可能会立刻同时发生多个还原操作。

为了防止各种互相影响问题,现在可以将联机备份的日志文件和控制硬恢复进程的 Restore.env 文件一起还原到临时文件夹中。
Restore.env 不是纯文本格式,但可以使用 Eseutil /cm 命令查看其内容。

note注意:
Exchange 5.5 管理员可能熟悉 Restore in Progress 注册表项,该注册表项对 Exchange 5.5 的作用与 Restore.env 对 Exchange 的较新版本所起作用相同。Exchange 2000 和更高版本没有 Restore in Progress 注册表设置。

如果正在还原多个联机备份(例如,单个完整备份和几个增量备份),则在还原所有备份之前不需要开始硬恢复。您只有一个机会将日志文件重播到还原的数据库;因此,必须推迟硬恢复直到已还原所有必要的日志文件。

如果正在使用备份来还原联机备份,通过在还原最终备份集之前选择“最后一个备份集”复选框,表明已准备好开始硬恢复。(其他备份应用程序可能以不同的方式实现了此功能。)如果在还原最后一个备份时没有选择“最后一个备份集”复选框,仍可以使用 Eseutil /cc 命令手动完成硬恢复。您应该从 Restore.env 所在的文件夹运行此命令。

硬恢复完成对临时文件夹中的日志文件的处理后,可以对存储组的普通事务日志文件夹中的其他事务日志进行重播,条件是它们要与此临时文件夹中的日志继续保持完整的顺序。


还原单个 Exchange 联机备份集是一项简单操作。只需要/只须选择一个目标服务器,在此服务器上为还原的日志文件选择一个临时位置,并设置在完成还原后自动运行硬恢复即可。
但是,如果正在还原多个备份集,应该了解日志文件重播的工作原理,以及如何验证是否实际还原了所有必需的文件。事务日志文件重播:Exchange Server 2003 中的软恢复和硬恢复详细描述了日志文件重播和恢复进程,交叉匹配 Exchange Server 2003 中的 Exchange 数据库和日志文件讲述了如何检查一组日志文件以证实它们是属于一组的而且是完整的。