如何还原事务日志备份 (SQL Server Management Studio)

注意注意

一般的还原过程需要在“还原数据库”对话框中同时选择日志备份以及数据和差异备份。

备份必须按照其创建顺序进行还原。在还原特定的事务日志备份之前,必须先还原下列以前备份,而不回滚未提交的事务,即 WITH NORECOVERY:

  • 在特定事务日志备份之前执行的完整数据库备份和上次差异备份(如果有)。

  • 在完整数据库备份之后执行的所有事务日志备份或在特定事务日志备份之前执行的差异备份(如果您还原了差异备份)。

    注意注意

    使用以下“恢复状态”选项还原以前的备份: 不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY)

    有关使用事务日志备份的信息,请参阅使用事务日志备份

还原事务日志备份

  1. 连接到相应的 MicrosoftSQL Server 数据库引擎实例之后,在对象资源管理器中,单击服务器名称以展开服务器树。

  2. 展开**“数据库”,然后根据数据库的不同,选择用户数据库,或展开“系统数据库”**,再选择系统数据库。

  3. 右键单击数据库,指向**“任务”,再单击“还原”**。

  4. 单击**“事务日志”,这将打开“还原事务日志”**对话框。

  5. 在**“常规”页上的“数据库”**列表框中,选择或键入数据库名称。仅列出处于还原状态的数据库。

  6. 若要指定要还原的备份集的源和位置,请单击以下选项之一:

    • 从数据库以前的备份

      选择要还原其日志备份的数据库的名称。

    • 从文件或磁带

      单击“浏览”按钮以选择一个或多个文件或磁带作为事务日志备份的来源。

      选择文件或磁带,将打开**“指定备份”对话框。在“备份媒体”列表框中,从列出的设备类型选择一种。若要为“备份位置”列表框选择一个或多个设备,请单击“添加”。将所需设备添加到列表框之后,单击“确定”返回到“常规”**页。

  7. 在**“选择用于还原的备份集”网格中,选择用于还原的备份。此网格列出了选定数据库可以使用的事务日志备份。只有在日志备份的“第一个 LSN”大于数据库的“最后一个 LSN”**时,此日志备份才可用。日志备份按照它们所包含的日志序列号 (LSN) 的顺序排列,并且也必须按照这种顺序恢复。

    下表列出了网格的列标题并对列值进行了说明。

    标题

    还原

    如果复选框处于选中状态,则指示要还原相应的备份集。

    备份集名称

    备份集的名称。

    备份组件

    已备份的组件:“数据库”“文件”或 <空白>(表示事务日志)。

    备份类型

    执行的备份类型:“完整”“差异”“事务日志”

    服务器名称

    执行备份操作的数据库引擎实例的名称。

    数据库

    备份操作中所涉及的数据库名称。

    位置

    备份集在卷中的位置。

    第一个 LSN

    备份集中第一个事务的日志序列号。对于文件备份为空。

    最后一个 LSN

    备份集中最后一个事务的日志序列号。对于文件备份为空。

    检查点 LSN

    创建备份时最近一个检查点的日志序列号。

    完整 LSN

    最近的完整数据库备份的日志序列号。

    开始日期

    备份操作开始的日期和时间(按客户端的区域设置显示)。

    完成日期

    备份操作完成的日期和时间(按客户端的区域设置显示)。

    大小

    备份集的大小(字节)。

    用户名

    执行备份操作的用户的名称。

    过期

    备份集的过期日期和时间。

  8. 选择下列操作之一:

    • 时间点

      保留默认值(“最近状态”);或者通过单击“浏览”按钮,打开**“时点还原”**对话框,从中选择特定的日期和时间。

    • 标记的事务

      将数据库还原为以前标记的事务。选择此选项会启动**“选择标记的事务”**对话框,从而显示一个网格,列出选定事务日志备份中可以使用的标记的事务。

      默认情况下,将一直还原到(但不包含)标记的事务为止。若要同时还原标记的事务,请选择**“包含标记的事务”**。

      下表列出了网格的列标题并对列值进行了说明。

      标题

      <空>

      显示一个用于选择标记的复选框。

      事务标记

      提交事务时,用户为标记的事务指定的名称。

      日期

      事务的提交日期及时间。事务日期和时间显示为 msdbgmarkhistory 表中所记录的日期和时间,而非客户端计算机的日期和时间。

      说明

      提交事务时,用户为标记的事务指定的说明(如果有的话)。

      LSN

      所标记事务的日志序列号。

      数据库

      提交标记的事务时所在数据库的名称。

      用户名

      提交标记事务的数据库用户的名称。

  9. 若要查看或选择高级选项,请在**“选择页”窗格中单击“选项”**。

  10. 对于**“还原到”**选项,可选项有:

    • 保留复制设置

      将已发布的数据库还原到创建该数据库的服务器之外的服务器时,保留复制设置。

      此选项只能与**“回滚未提交的事务,使数据库处于可以使用的状态...”**选项(等效于使用 RECOVERY 选项还原备份,将在后面予以介绍)一起使用。

      选中此选项等效于在 Transact-SQL RESTORE 语句中使用 KEEP_REPLICATION 选项。

    • 还原每个备份之前进行提示

      如果选中此选项,则在第一个备份集之后还原每个备份集之前,将显示**“继续还原”**对话框,询问您是否要继续按此顺序还原。此对话框显示下一个媒体集(如果可用)的名称、备份集的名称以及备份集的说明。

      如果对于不同媒体集必须更换磁带,则此选项特别有用。例如,如果服务器只有一个磁带设备,则可以使用此选项。待您做好继续操作的准备后,再单击**“确定”**。

      单击**“否”将使数据库保持还原状态。完成上次还原之后,您可以在方便时继续按顺序还原。如果下一个备份是数据备份或差异备份,请再次使用“还原数据库”任务。如果下一个备份是日志备份,请使用“还原事务日志”**任务。

    • 限制访问还原的数据库

      使还原的数据库仅供 db_ownerdbcreatorsysadmin 的成员使用。

      选中此选项等效于在 Transact-SQL RESTORE 语句中使用 RESTRICTED_USER 选项。

  11. 对于**“恢复状态”**选项,请指定还原操作之后的数据库状态。

    • 回滚未提交的事务,使数据库处于可以使用的状态。无法还原其他事务日志。(RESTORE WITH RECOVERY)

      恢复数据库。此选项等效于 Transact-SQL RESTORE 语句中的 RECOVERY 选项。

      请仅在没有要还原的日志文件时选择此选项。

    • 不对数据库执行任何操作,不回滚未提交的事务。可以还原其他事务日志。(RESTORE WITH NORECOVERY)

      使数据库处于未恢复状态。此选项等效于在 Transact-SQL RESTORE 语句中使用 NORECOVERY 选项。

      如果选择此选项,**“保留复制设置”**选项将不可用。

    • 使数据库处于只读模式。撤消未提交的事务,但将撤消操作保存在文件中,以便可使恢复效果逆转。(RESTORE WITH STANDBY)

      使数据库处于备用状态。此选项等效于在 Transact-SQL RESTORE 语句中使用 STANDBY 选项。

      选择此选项需要您指定一个备用文件。

  12. (可选操作)在**“备用文件”**文本框中指定一个备用文件名。如果您使数据库处于只读模式,则必须选中此选项。您可以浏览到该备用文件,也可以在文本框中键入其路径名。