还原 Exchange 2013 数据库

查找有关还原 Exchange 2013 数据库的不同方法的信息。

适用于:Exchange Server 2013

Exchange Server 2013 中包含的 Exchange 编写器允许在还原 Exchange 数据库的方式方面具有一定的灵活性。 通过在 Exchange 2013 中使用 Exchange 编写器,可以将卷影副本备份还原到以下位置:

  • 原始数据库,无论是否已修改数据库或事务日志文件路径配置。

  • 恢复数据库。

  • 任何生产数据库,无论数据库显示名称是否与 VSS 备份集中的名称匹配。

还原应用程序将信息还原到原始数据库时,必须将日志文件还原到Active Directory 域服务 (AD DS) 中指定的目录路径。 如果应用程序将数据库还原到其他位置,则必须将日志文件还原到位于数据库日志文件目录内的名为 _restoredLogs 的文件夹。

还原到与原始数据库不同的服务器或数据库时,还原应用程序必须确保提供给 VSS 的数据库目录路径与 AD DS 中的路径相匹配。 可以使用 get-MailboxDatabaseExchange 命令行管理程序 cmdlet 获取有关现有数据库的信息。 有关 Exchange 命令行管理程序的详细信息,请参阅 Exchange 服务器 PowerShell (Exchange 命令行管理程序)

下图显示了由卷影复制服务 (VSS) 管理的 Exchange 数据库的典型还原中的事件序列。

图 1. 用于还原数据库的事件序列

此图显示恢复过程的事件序列。该序列从 Exchange 存储启动开始,然后是继续经历 Exchange 编写器、VSS 和客户端应用程序之间的多个步骤。

将 Exchange 数据库还原到原始位置

Exchange 编写器使应用程序能够将数据库和事务日志文件还原到其在 Exchange 服务器上的原始位置。 默认情况下,在请求者确认在 OnPostRestore 操作期间还原已完成后,Exchange 编写器会重播事务日志文件。 还原应用程序必须使用 VSS SetAdditionalRestores 方法防止重播日志文件。 Exchange 管理员或应用程序稍后重新装载还原的数据库时,可以重播日志文件。

将数据库还原回其原始数据库对象 (以便数据库中的目标 GUID 与备份集中的 GUID) 但与不同的文件路径匹配时,应用程序必须确定当前文件路径并将备份文件还原到数据库属性中指定的相应文件路径。 请求者必须调用 AddNewTarget 方法,以便向 Exchange 编写器传达文件还原位置,然后编写器才能继续执行还原过程的其余部分。 如果未调用 AddNewTarget ,则 Exchange 编写器假定备份已还原到备份元数据文档中指定的文件路径。

通常,应用程序不必为从数据库可用性组 (DAG) 副本执行的备份指定新路径。 Exchange 管理员通常不会更改数据库或日志文件路径。 但是,在 DAG 配置中,备份应用程序可能必须指定活动数据库和日志路径,因为 DAG 复制路径始终与这些路径不同。

请注意,Exchange 2013 不支持还原非活动 DAG 数据库副本。 只有在还原活动数据库副本时,才能从备份数据还原 DAG 副本。 使用不同的备份数据集或尝试还原数据库副本的子集可能会导致数据库不可装载。 在这种情况下,备份应用程序不必调用 SetRestoreOptions 函数,因为备份将还原到创建它们的原始数据库对象。 但是,如果备份应用程序调用 SetRestoreOptions 并且 XML 元数据文档具有正确的参数,则结果不是错误。

将 Exchange 数据库还原到恢复数据库

使用 Exchange 编写器可以直接将数据还原到恢复数据库。 将恢复的数据装载为恢复数据库允许 Exchange 管理员还原单个邮箱,甚至邮箱中的单个项目。

如果恢复数据库已存在,应用程序可以卸载数据库,将数据还原到恢复数据库和日志文件上,然后重新装载数据库。

每个 Exchange 2013 服务器一次只允许装载一个恢复数据库。 服务器可以包含磁盘空间允许的任意数量的已恢复数据库,但只能将一个数据库装载为恢复数据库。 作为恢复数据库装载的数据库将计入一次可以装载的最大数据库数。 作为服务器的恢复数据库装载的恢复数据库与原始邮箱没有任何关联。

若要恢复到恢复数据库,应用程序必须调用 SetRestoreOptions 方法并提供一个 XML 文档来指示源数据库 GUID 和目标数据库 GUID。 源 GUID 必须与备份集中的 GUID 匹配,目标 GUID 必须与 AD DS 中的目标数据库条目匹配。 备份应用程序还必须调用 AddNewTarget 方法来指定文件还原到的目录路径。 如果需要重命名数据库文件,Exchange 编写器将在 OnPostRestore 操作期间重命名数据库。 Exchange 要求将事务日志文件还原到当前事务日志文件路径下的子文件夹 ( _restoredLogs) 。 如果将日志文件还原到任何其他位置,Exchange 编写器将返回错误。 由于作为恢复数据库装载的数据库不会还原到其原始位置,因此需要将其引入干净关闭状态,然后才能装载它们。 默认情况下,Exchange 编写器会在还原后将所有还原的数据库置于干净关闭状态。 如果备份应用程序调用 SetAdditionalRestores 方法,Exchange 编写器将不会重播日志文件,并且管理员或备份应用程序需要在装载数据库之前将数据库置于干净关闭状态。

将 Exchange 数据库还原到恢复服务器

在某些情况下,可能需要将备份集恢复到另一台服务器;例如,可能需要通过将邮箱数据库移植到同一 Exchange 组织中的另一个 Exchange 2013 服务器,或还原到生产环境外部的专用服务器来恢复邮箱和公用文件夹数据,从而从灾难性服务器故障中恢复。

在这些方案中,目标数据库及其对象 GUID 的文件路径与原始数据库的文件路径不同。 因此,应用程序必须调用具有指示源和目标数据库信息的 XML 文档 的 SetRestoreOptions 方法,并调用 AddNewTarget 方法来指定要将备份文件还原到的目录路径。 对于 Exchange 编写器,此还原与还原到恢复数据库相同。 有关详细信息,请参阅本文前面的 将 Exchange 数据库还原到恢复数据库

另请参阅