服务器实例上所有 SQL Server 备份和还原作的完整历史记录存储在 msdb 数据库中。 本主题介绍备份和还原历史记录表,以及用于访问备份历史记录的 Transact-SQL 语句。 本主题还讨论了何时列出数据库和事务日志文件很有用,以及何时使用媒体标头信息,以及何时使用备份标头信息。
重要
若要管理丢失对备份和还原历史记录的最新更改的风险,请经常备份 msdb 。 有关必须备份的系统数据库的信息,请参阅“备份和还原系统数据库”(SQL Server)。
本主题内容:
备份和还原历史记录表
本部分介绍在 msdb 系统数据库中存储备份和还原元数据的历史记录表。
历史记录表 | DESCRIPTION |
---|---|
backupfile | 为每个备份的数据或日志文件包含一行。 |
backupfilegroup | 包含备份集中每个文件组的行。 |
backupmediafamily | 包含每个媒体族的一行。 如果媒体组驻留在镜像媒体集内,则该组在媒体集中的每个镜像都有一行单独的记录。 |
backupmediaset | 每个备份介质集包含一行。 |
备份集 | 每个备份集都有一个对应的行。 |
恢复文件 | 每个被还原文件有一行记录。 这包括通过文件组名称间接还原的文件。 |
恢复文件组 | 为每个还原的文件组包含一行。 |
restorehistory | 每个还原操作包含一行。 |
注释
执行还原时,将修改备份历史记录表和还原历史记录表。
用于访问备份历史记录的 Transact-SQL 语句
还原信息语句对应于存储在某些备份历史记录表中的信息。
重要
RESTORE FILELISTONLY、RESTORE HEADERONLY、RESTORE LABELONLY 和 RESTORE VERIFYONLY Transact-SQL 语句需要 CREATE DATABASE 权限。 此要求可保护备份文件,并比以前版本更全面地保护备份信息。 有关此权限的信息,请参阅 GRANT 数据库权限(Transact-SQL)。
信息声明 | 备份历史记录表 | DESCRIPTION |
---|---|---|
RESTORE FILELISTONLY | backupfile | 返回一个结果集,其中包含指定备份集中包含的数据库和日志文件的列表。 有关详细信息,请参阅本主题后面的“列出数据库和事务日志文件”。 |
RESTORE HEADERONLY | 备份集 | 检索特定备份设备上所有备份集的所有备份标头信息。 执行 RESTORE HEADERONLY 的结果是一个结果集。 有关详细信息,请参阅本主题后面的“查看 Backup-Header 信息”。 |
RESTORE LABELONLY | backupmediaset | 返回一个结果集,其中包含有关指定备份设备上的备份介质的信息。 有关详细信息,请参阅本主题稍后部分中的“查看 Media-Header 信息”。 |
数据库和事务日志文件
在备份中列出数据库和事务日志文件时显示的信息包括逻辑名称、物理名称、文件类型(数据库或日志)、文件组成员身份、文件大小(以字节为单位)、允许的最大文件大小和预定义的文件增长大小(以字节为单位)。 在以下情况下,此信息非常有用,在还原数据库备份之前确定数据库备份中文件的名称:
你丢失了一个磁盘驱动器,该驱动器包含一个或多个数据库的文件。
可以列出数据库备份中的文件以确定哪些文件受到影响,然后在还原整个数据库时将这些文件还原到其他驱动器上;或仅还原这些文件,并应用自备份数据库后创建的任何事务日志备份。
你要将数据库从一台服务器还原到另一台服务器上,但服务器上不存在目录结构和驱动器映射。
列出备份中的文件,可确定哪些文件受到影响。 例如,备份包含一个文件,该文件必须还原到驱动器 E,但目标服务器没有驱动器 E。还原文件时,该文件必须重新定位到另一个位置,例如驱动器 Z。
Media-Header 信息
查看媒体标头会显示有关媒体本身的信息,而不是有关媒体上的备份的信息。 显示的媒体标头信息包括媒体名称、说明、创建媒体标头的软件的名称以及写入媒体标头的日期。
注释
查看媒体头文件很方便。
有关详细信息,请参阅本主题后面的 Media-Header 和 Backup-Header 信息的比较。
Backup-Header 信息
查看备份标头会显示有关介质上所有 SQL Server 和非 SQL Server 备份集的信息。 显示的信息包括所使用的备份设备类型、备份类型(例如数据库、事务、文件或差异数据库),以及备份开始和停止日期/时间信息。 当必须确定要还原的磁带上的备份集或介质中包含的备份时,此信息非常有用。
注释
对于大容量磁带,查看备份标头信息可能需要很长时间,因为必须扫描整个媒体才能显示有关介质上每个备份的信息。
有关详细信息,请参阅本主题后面的 Media-Header 和 Backup-Header 信息的比较。
选择还原哪个备份集
可以使用备份标头中的信息来标识要还原的备份集。 数据库引擎对备份介质上的每个备份集进行编号。 这样,便可以通过使用介质上的位置来标识要还原的备份集。 例如,以下媒体包含三个备份集。
若要还原特定的备份集,请指定要还原的备份集的位置编号。 例如,若要还原第二个备份集,请将 2 指定为要还原的备份集。
Media-Header 和 Backup-Header 信息的比较
下图提供了查看备份标头和媒体标头信息之间的差异示例。 要获得媒体标头,只需从磁带的开头提取信息。 获取备份标头需要扫描整个磁带以检查每个备份集的标头。
注释
使用具有多个介质系列的媒体集时,媒体标头和备份集将写入所有介质系列。 因此,只需为这些报告操作提供单个媒体分组。
有关如何查看媒体标头的信息,请参阅本主题前面的“查看 Media-Header 信息”。
有关如何查看备份设备上所有备份集的备份标头信息的信息,请参阅本主题前面的“查看 Backup-Header 信息”。
备份验证
虽然不需要,但验证备份是一种有用的做法。 验证备份时检查其物理完整性,以确保备份中的所有文件都是可读的,并可在需要时进行还原。 请务必了解,验证备份不会验证备份中的数据结构。 但是,如果备份是使用 WITH CHECKSUMS 创建的,则使用 WITH CHECKSUMS 验证备份可以提供备份上数据的可靠性的良好指示。
相关任务
从备份和还原历史记录表中删除旧行
从备份和还原历史记录表中删除特定数据库的所有行
查看备份集中的数据和日志文件
查看媒体标头信息
ReadMediaHeader (SMO)
查看备份标头信息
ReadBackupHeader (SMO)
从备份和还原历史记录表中删除旧行
从备份和还原历史记录表中删除特定数据库的所有行
查看媒体标头信息
ReadMediaHeader (SMO)
查看备份标头信息
ReadBackupHeader (SMO)
查看备份集中的文件
验证备份
另请参阅
BACKUP (Transact-SQL)
媒体集、媒体系列和备份集 (SQL Server)
备份设备 (SQL Server)
镜像备份媒体集 (SQL Server)
备份和还原期间可能出现的媒体错误(SQL Server)