执行段落还原

更新日期: 2006 年 7 月 17 日

显示蓝色数据库磁盘的图标 本主题仅适用于 SQL Server 2005 Enterprise Edition 中包含多个文件或文件组的数据库;在简单恢复模式下,本主题仅适用于只读文件组。

在 SQL Server 2005 中,可以通过称为“段落还原”**的过程分阶段还原和恢复包含多个文件组的数据库。段落还原包括从主文件组开始的一系列还原顺序,有时也从一个或多个辅助文件组开始。在还原顺序结束后,如果恢复的文件有效并且与数据库一致,则恢复的文件将直接变为在线状态。

段落还原适用于所有恢复模式,但在完整恢复模式和大容量日志恢复模式下比在简单恢复模式下更灵活。

ms177425.note(zh-cn,SQL.90).gif注意:
段落还原比 SQL Server 2000 部分还原具有更强的通用性,因为未还原的文件组可以稍后还原。

所有的段落还原都从称为“部分还原顺序”**的初始还原顺序开始。部分还原顺序至少还原和恢复主文件组,在简单恢复模式下还会还原和恢复所有读/写文件组。在段落还原顺序中,整个数据库都必须离线。随后,数据库将处于在线状态,并且还原的文件组都处于可用状态。但是,尚未还原的任何文件组将保持离线状态。

无论数据库采用何种恢复模式,部分还原顺序都从 RESTORE DATABASE 语句开始,该语句将还原完整备份并指定 PARTIAL 选项。PARTIAL 选项总是会启动一个新的段落还原;因此,在部分还原顺序的初始语句中,只能指定 PARTIAL 一次。当部分还原顺序完成并且数据库在线后,由于余下文件的恢复被推迟,这些文件的状态将变为“恢复已挂起”。

此后,段落还原通常包括一个或多个还原顺序,这些还原顺序称为“文件组还原顺序”**。您可以等待执行特定的文件组还原顺序,等待的时间长短由您决定。每个文件组还原顺序将一个或多个离线文件组还原并恢复到与数据库一致的点。文件组还原顺序的时间安排和数量取决于您的恢复目标、您想要还原的离线文件组数量以及每个文件组还原顺序中还原的离线文件组的数量。

执行段落还原的精确要求取决于数据库的恢复模式。有关详细信息,请参阅本主题后面的“简单恢复模式下的段落还原”和“完整恢复模式下的段落还原”。

段落还原方案

所有版本的 SQL Server 2005 都支持离线段落还原。在 SQL Server 2005 Enterprise Edition 中,段落还原可以是在线或离线的。离线和在线段落还原的含义如下:

  • 离线段落还原方案
    在离线段落还原中,数据库在部分还原顺序之后处于在线状态。尚未还原的文件组保持离线状态,但是在数据库离线后,可以根据需要还原这些文件组。
  • 在线段落还原方案
    在进行在线段落还原时,数据库在部分还原顺序后处于在线状态,并且主文件组和所有已恢复的辅助文件组都处于可用状态。尚未还原的文件组保持离线状态,但是在数据库保持在线状态时,可以根据需要还原这些文件组。
    在线段落还原可能引起事务延迟。如果仅还原了一部分文件组,则数据库中依赖在线文件组的事务可能会延迟。这是正常现象,因为整个数据库必须一致。有关详细信息,请参阅延迟的事务

简单恢复模式下的段落还原

在简单恢复模式下,段落还原顺序必须从完整数据库备份或部分备份开始。随后,如果还原的备份为差异基准,则接着还原最新差异备份。

在第一个部分还原顺序期间,如果您仅还原读/写文件组的一个子集,当您恢复部分还原的数据库时,未还原的文件组会失效。从部分还原顺序中省略一个读/写文件组仅适用于下列情况:

  • 需要使未还原的文件组失效。
  • 还原顺序将到达某个恢复点,在此点处的每个未还原文件组(在部分还原顺序中的前一个还原过程中)已变成只读、已删除或失效。
  • 完整备份是在数据库使用简单恢复模式时进行的,但恢复点却位于数据库使用完整恢复模式的某个时刻。有关详细信息,请参阅本主题后面的“执行已从简单恢复模式切换到完整恢复模式的数据库段落还原”。

简单恢复模式下的段落还原要求

在简单恢复模式下,初始阶段还原并恢复主文件组和所有读/写辅助文件组。在初始阶段结束后,如果恢复的文件有效并且与数据库一致,则恢复的文件将直接变为在线状态。

随后,可以在一个或多个其他阶段中还原只读文件组。

只有满足以下条件时,段落还原才适用于只读辅助文件组:

  • 在备份时处于只读状态。
  • 保持只读状态(逻辑上与主文件组保持一致)。

若要执行段落还原,必须遵照以下原则:

  • 简单恢复模式数据库的段落还原的完整备份集必须包含:
    • 部分数据库备份或完整数据库备份,其中包含在备份时处于读/写状态的主文件组和所有文件组。
    • 每个只读文件的备份。
  • 从备份开始直到包含主文件组的备份完成为止,辅助文件组必须始终为只读,才能使只读文件的备份与主文件组保持一致。如果差异文件备份是在文件组变为只读状态之后进行的,则可以使用差异文件备份。

段落还原阶段(简单恢复模式)

段落还原方案包括下列阶段:

  • 初始阶段(还原并恢复主文件组和所有读/写文件组)
    初始阶段执行部分还原。部分还原顺序将还原主文件组、所有读/写辅助文件组和(可选的)部分只读文件组。在初始阶段中,整个数据库都必须离线。初始阶段后,数据库将处于在线状态,并且已还原的文件组都处于可用状态。但是,尚未还原的任何只读文件组将保持离线状态。
    初始阶段中的第一条 RESTORE 语句必须执行以下操作:
    • 使用包含了在备份时处于读/写状态的主文件组和所有文件组的部分数据库备份或完整数据库备份。常见的是通过还原部分备份来启动部分还原顺序。
    • 指定 PARTIAL 选项,该选项指示段落还原的开头。
    ms177425.note(zh-cn,SQL.90).gif注意:
    初始阶段的段落还原取代了 SQL Server 2000 中的部分数据库还原功能。在 SQL Server 2005 中,PARTIAL 选项会执行部分数据库还原功能所缺少的安全检查,因此生成的数据库适合用作生产数据库。
    - 如果备份是完整数据库备份,则指定 READ\_WRITE\_FILEGROUPS 选项。
  • 数据库处于在线状态时,可以使用一个或多个在线文件还原来还原并恢复在备份时处于只读状态的离线只读文件。在线文件还原的时间安排取决于您希望数据在线的时间。
    您是否必须将数据还原到文件取决于:
    • 通过恢复文件而不还原任何数据,可以直接使与数据库一致的有效只读文件在线。
    • 恢复文件之前,必须先还原已损坏的或与数据库不一致的文件。

示例

完整恢复模式下的段落还原

在完整恢复模式或大容量日志恢复模式下,任何包含多个文件组的数据库都可以使用段落还原,并且可以将数据库还原到任何时间点。段落还原的还原顺序如下:

  • 部分还原顺序
    部分还原顺序会还原主文件组和(可选的)部分辅助文件组。
    第一个 RESTORE DATABASE 语句必须执行以下操作:
    • 指定 PARTIAL 选项。它表示段落还原的开始。
    • 使用包含主文件组的任何完整数据库备份。常见的做法是通过还原部分备份来启动部分还原顺序。
    • 若要还原到特定的时间点,必须在部分还原顺序中指定该时间。还原顺序的每个后续步骤都必须指定相同的时间点。
  • 文件组还原顺序会使其他文件组在线并处于与数据库一致的某个点。
    在 SQL Server 2005 Enterprise Edition 中,当数据库在线时,可还原并恢复任何离线辅助文件组。如果特定只读文件未损坏且与数据库一致,则该文件无需还原。有关详细信息,请参阅恢复数据库但不还原数据

应用日志备份

如果在文件备份创建之前,只读文件组就已处于只读状态,则该文件组无需应用日志备份,并且文件还原会跳过日志备份的应用过程。如果文件组是读/写文件组,则必须将未中断的日志备份链应用于上一次完整还原或差异还原,文件组才能前进到当前的日志文件。

示例

执行已从简单恢复模式切换到完整恢复模式的数据库段落还原

可以对自完整或部分数据库备份后已从简单恢复模式切换到完整恢复模式的数据库执行段落还原。例如,假设要对某个数据库执行下列步骤:

  1. 创建简单模式数据库的一个部分备份 (backup_1)。
  2. 一段时间后,将恢复模式更改为完整恢复模式。
  3. 创建一个差异备份。
  4. 开始进行日志备份。

此后,下列顺序是有效的:

  1. 省略一些辅助文件组的部分还原。
  2. 后面跟有其他所需还原的差异还原。
  3. 一段时间之后,使用 WITH NORECOVERY 从 backup_1 部分备份中进行读/写辅助文件组的文件还原
  4. 在原始段落还原中执行的旨在将数据还原到原始恢复点的所有其他还原之前的差异备份。

请参阅

概念

为处于还原、恢复挂起或离线状态的文件计划段落还原顺序
应用事务日志备份
了解 SQL Server 中备份的还原和恢复工作方式

其他资源

RESTORE (Transact-SQL)
将数据库还原到备份中的某个时间点
使用 SQL Server 数据库还原顺序

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2006 年 7 月 17 日

更改的内容:
  • 合并了先前的“段落还原方案(完整恢复模式)”主题下的内容。