规划和执行还原序列(完整恢复模式)

本主题介绍如何为通常使用完整恢复模式的 SQL Server 数据库规划和执行还原序列。 还原序列是一个或多个 RESTORE 语句的序列。 通常,还原序列依次初始化被还原的数据库、文件和/或页面的内容(数据复制阶段)、前滚已记录的事务(重做阶段),并回滚未提交的事务(撤消阶段)。

在简单情况下,还原序列只需要完整数据库备份、差异数据库备份和后续日志备份。 在这些情况下,构造正确的还原序列很容易。 例如,若要将整个数据库还原到故障点,请首先备份活动事务日志(日志尾 )。 然后,按照从开始到结束的顺序还原最新的完整数据库备份、最新的差异备份(如果有),以及所有后续日志备份。

在更复杂的情况下,构造正确的还原序列可能是一个复杂的过程。 例如,还原序列可能需要多个文件备份或将数据还原到特定的时间点。 在非常复杂的情况下,甚至可能需要遍历一个跨越多个恢复分叉的分叉恢复路径。

注释

恢复路径是将数据和日志备份序列带到特定时间点(称为恢复点)。 恢复路径是一组特定的转换,这些转换随时间推移演变了数据库,但一直保持数据库的一致性。 恢复路径描述了从起始点(LSN,GUID)到终止点(LSN,GUID)的 LSN 范围。 恢复路径中的 LSN 范围可以从头到尾遍历一个或多个恢复分支。

规划还原序列

在启动还原序列之前,请执行以下步骤:

  1. 如果可以,请创建数据库的结尾日志备份。 有关详细信息,请参阅 Tail-Log 备份(SQL Server)。

  2. 确定目标恢复点。

    目标恢复点可以是事务日志备份中的任何时间点或标记。 有关详细信息,请参阅将 SQL Server 数据库还原到时间点(完全恢复模型),或使用标记的事务以一致方式恢复相关数据库(完全恢复模式)。

  3. 确定要执行的还原类型。 有关详细信息,请参阅还原和恢复概述(SQL Server)。

  4. 确定需要哪些备份,并确保必要的媒体集和备份设备可用。 有关详细信息,请参阅备份设备(SQL Server)媒体集、媒体系列和备份集(SQL Server)。

执行还原序列

若要执行还原序列,请执行以下步骤:

  1. 若要启动序列,请还原一个或多个数据备份,例如:数据库备份、部分备份、一个或多个文件备份。

  2. (可选)还原基于这些完整备份的最新差异备份。

    对于计划还原的每个完整备份,确定它是否是任何差异备份的基础。 如果是,请还原最新的差异备份(如果可以)。 有关详细信息,请参阅差异备份(SQL Server)。

  3. 通过按顺序还原日志备份来前滚数据库,最后完成包含恢复点的备份。 是否需要应用所有日志备份取决于哪些日志备份包含目标恢复点,如下所示:

    • 如果恢复点是故障点,则必须还原自上次还原的数据(完整或差异)备份以来创建的每个日志备份。 有关详细信息,请参阅应用事务日志备份 (SQL Server)

    • 在进行时间点还原时,您可能不需要使用最新的日志备份。 如果您使用 SQL Server Management Studio,数据库恢复顾问确保只选择必需的备份以还原到您指定的时间点。 这些备份构成了在特定时间点的还原的建议计划。 有关详细信息,请参阅将 SQL Server 数据库还原到时间点(完全恢复模式)。

重新启动还原序列

如果还原序列的结果出现问题,可以从一开始就退出并重启还原序列。 例如,如果您不小心还原了过多的日志备份,超过了预期的恢复点,则必须重新开始还原顺序,直到包含目标恢复点的日志备份。

另请参阅

备份概述 (SQL Server)
还原和恢复概述 (SQL Server)
完整数据库还原(完整恢复模式)
联机还原(SQL Server)
文件还原(完整恢复模式)
还原页(SQL Server)
碎片还原 (SQL Server)