查看有关备份的信息

服务器实例上所有 SQL Server 备份和还原操作的完整历史记录存储在 msdb 数据库中。本主题介绍备份和还原历史记录表以及用于访问备份历史记录的 Transact-SQL 语句。

本主题还介绍如何执行以下操作:

  • 列出数据库文件和事务日志文件。

  • 查看媒体标头信息。

  • 查看备份标头信息。

此外,本主题还将媒体标头信息和备份标头信息进行了比较。有关详细信息,请参阅本主题后面的“媒体标头信息和备份标头信息的比较”部分。

重要说明重要提示

为了规避丢失最新更新内容的风险,经常备份 msdb 是非常重要的。有关哪些系统数据库必须进行备份的信息,请参阅备份和还原系统数据库的注意事项

备份和还原历史记录表概述

本部分介绍 msdb 系统数据库中存储备份和还原元数据的历史记录表。

历史记录表

说明

backupfile

每个备份的数据或日志文件在表中占一行。

backupfilegroup

备份集中的每个文件组在表中占一行。

backupmediafamily

每个媒体簇在表中占一行。如果媒体簇驻留在镜像媒体集中,则对于媒体集中的每个镜像,该媒体簇都具有一个单独的行。

backupmediaset

每个备份媒体集在表中占一行。

backupset

每个备份集在表中占一行。

restorefile

每个已还原文件在表中占一行。这包括按文件组名称间接还原的文件。

restorefilegroup

每个已还原的文件组在表中占一行。

restorehistory

每个还原操作在表中占一行。

注意注意

执行还原时,会修改备份历史记录表和还原历史记录表。

从备份中删除旧行并还原历史记录表

从备份中删除特定数据库的所有行并还原历史记录表

用于访问备份历史记录的 Transact-SQL 语句

还原信息语句与特定备份历史记录表中存储的信息存在对应关系。

安全说明安全说明

在以前的 SQL Server 版本中,任何用户都能够使用 RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY 和 RESTORE VERIFYONLY Transact-SQL 语句来获取有关备份集和备份设备的信息。由于它们会泄露有关备份文件内容的信息,因此,在 SQL Server 2008 及更高版本中,这些语句需要 CREATE DATABASE 权限。与以前的版本相比,此要求可以更全面地保护备份文件和备份信息。有关此权限的信息,请参阅GRANT 数据库权限 (Transact-SQL)

信息语句

备份历史记录表

说明

RESTORE FILELISTONLY

backupfile

返回一个结果集,其中包含一个列出了指定备份集中包含的数据库和日志文件的列表。

有关详细信息,请参阅本主题后面的“列出数据库文件和事务日志文件”部分。

RESTORE HEADERONLY

backupset

在特定的备份设备上检索所有备份集的所有备份标头信息。执行 RESTORE HEADERONLY 的结果是一个结果集。

有关详细信息,请参阅本主题后面的“查看备份标头信息”部分。

RESTORE LABELONLY

backupmediaset

返回一个结果集,其中包含有关指定备份设备中的备份媒体的信息。

有关详细信息,请参阅本主题后面的“查看媒体标头信息”部分。

列命名约定

由于历史的原因,存在两种不同的命名约定。旧列保留其原始名称。不过,SQL Server 2005 或更高版本中的列遵循下表所示的命名约定。

上下文

说明

由信息命令返回的列

WordWordWord

示例:DifferentialBaseLSN

msdb 及目录视图中的列

word_word_word

示例:differential_base_lsn

列出数据库文件和事务日志文件

列出备份中的数据库文件和事务日志文件时,显示的信息包括逻辑名称、物理名称、文件类型(数据库文件或日志文件)、文件组成员资格、文件大小(字节)、允许的文件最大大小和预定义的文件增长大小(字节)。在下列情况下,这些信息对于在还原数据库备份之前确定数据库备份中文件的名称很有用:

  • 丢失了包含数据库中一个或多个文件的磁盘驱动器。

    可以列出数据库备份中的文件以确定哪些文件受到影响,然后在还原整个数据库时将那些文件还原到另一个驱动器上,或者只还原那些文件并应用自进行数据库备份后创建的任何事务日志备份。

  • 将数据库从一台服务器还原到另一台服务器上,但这台服务器上没有目录结构和驱动器映射。

    列出备份中的文件使您能够确定哪些文件受到影响。例如,备份中包含必须还原到驱动器 E 的文件,而目标服务器没有驱动器 E。还原此文件时,必须将此文件重新定位至其他位置,例如驱动器 Z。

查看备份集中的数据文件和日志文件

查看媒体标头信息

查看媒体标头时显示有关媒体本身的信息,而不显示有关媒体上的备份的信息。显示的媒体标头信息包括媒体名称、说明、创建媒体标头的软件的名称以及媒体标头的写入日期。

注意注意

查看媒体标头的速度很快。

查看媒体标头信息

有关详细信息,请参阅本主题后面的“媒体标头信息和备份标头信息的比较”部分。

查看备份标头信息

查看备份标头时,将显示有关媒体上的所有 SQL Server 和非 SQL Server 备份集的信息。显示的信息包括使用的备份设备类型、备份类型(数据库备份、事务备份、文件备份还是差异数据库备份)以及备份开始和停止的日期/时间。这些信息对确定还原磁带上的哪个备份集或确定媒体上包含哪些备份很有用。

注意注意

查看备份标头信息时需要扫描整个媒体以显示有关媒体上每个备份的信息,因此对高容量磁带可能需要很长时间。

查看备份标头信息

有关详细信息,请参阅本主题后面的“媒体标头信息和备份标头信息的比较”部分。

标识要还原的备份集

可以使用备份标头中的信息来标识要还原的备份集。数据库引擎将对备份媒体上的每个备份集进行编号。这样,您就可以通过备份集在媒体中的位置标识要还原的备份集。例如,下面的媒体包含三个备份集。

包含 SQL Server 备份集的备份媒体

若要还原特定的备份集,请指定要还原的备份集的位置编号。例如,若要还原第二个备份集,请指定 2 作为要还原的备份集。

媒体标头和备份标头信息之比较

可以下图为例了解备份标头和媒体标头信息在查看方法上的区别。获取媒体标头信息只需要从磁带开头检索信息。获取备份标头信息则需要扫描整个磁带以查看每个备份集的标头。

包含三个 SQL Server 备份集的媒体集

注意注意

使用包含多个媒体簇的媒体集时,媒体标头和备份集都写入所有媒体簇中。因此,只需为这些报表操作提供单个媒体簇即可。

有关如何查看媒体标头的信息,请参阅本主题前面的“查看媒体标头信息”部分。

有关如何查看备份设备上所有备份集的备份标头信息的信息,请参阅本主题前面的“查看备份标头信息”。