13.4 检查文件和标头信息

13.4 检查文件和标头信息


13.4.1 检查文件结构

  通过查询backupfile表,可以返回一个结果集,其中包含一个列出了指定备份集中包含的数据库的数据文件和事务日志文件的列表。这些信息对于在还原数据库备份之前确定数据库备份中文件的名称很有用。

  T-SQL示例:

RESTORE FILELISTONLY FROM DISK = N'C:\Backup\db01.bak' WITH FILE=1

  显示的信息包括逻辑名称、物理名称、文件类型(数据库文件或日志文件)、文件组成员资格、文件大小(字节)、允许的文件最大大小和预定义的文件增长大小(字节)。这些信息有助于我们了解该备份集所对应的数据库的文件结构,以防止在恢复时出现不匹配的磁盘驱动器名称、驱动器映射、目录结构。例如,备份中包含一个必须还原到驱动器 E 的文件,而目录服务器上没有驱动器 E;还原该文件后,必须将该文件重新定位到其他位置,比如驱动器 Z。



13.4.2 查看标头信息

  通过查询backupmediaset表,可以查看介质标头,仅显示有关介质本身的信息,而不显示有关介质上的备份的信息。

  显示的介质标头信息包括介质名称、说明、创建介质标头的软件的名称以及介质标头的写入日期。

RESTORE LABELONLY FROM MyBackupDev


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

RESTORE HEADERONLY FROM DISK = N'C:\Backup\db01.bak'


  可以使用备份标头中的信息来标识要还原的备份集。数据库引擎将对备份介质上的每个备份集进行编号。这样,在还原时确定使用备份介质(磁盘或磁带)上的哪个备份集;查看介质上包含哪些备份。例如,下面的介质包含三个备份集。

wKiom1anNyXwj3pEAAAInK5WtIk709.png


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


  获取介质标头信息只需要从磁带开头检索信息,因此查看介质标头的速度很快。获取备份标头信息则需要扫描整个介质以显示有关介质上每个备份集的标头,因此对高容量磁带可能需要很长时间。

13.4 检查文件和标头信息_第1张图片


  对于镜像化的介质集,尽管它包含多个介质簇,但是介质标头和备份集都写入所有介质簇中。因此,只需为这些报表操作提供单个介质簇即可。



13.4.3 验证备份

  验证备份但不还原备份,检查备份集是否完整以及整个备份是否可读。 但是,RESTORE VERIFYONLY 不尝试验证备份卷中的数据结构。 在 Microsoft SQL Server 中,RESTORE VERIFYONLY 得到了增强以对数据进行附加检查,从而提高检测到错误的可能性。 其目标是尽可能接近实际的还原操作。

RESTORE VERIFYONLY FROM <backup_device>


  RESTORE VERIFYONLY 执行下列检查。如果备份有效,SQL Server 数据库引擎会返回一条成功消息。

  • 备份集是否完整以及所有卷是否可读。

  • 数据库页中的一些标头字段,例如页 ID(就如同要写入数据一样)。

  • 校验和(如果介质中提供的话)。

  • 目标设备中是否有足够的空间。



本文出自 “SQL Server 管理员指南” 博客,谢绝转载!

你可能感兴趣的:(检查文件,表头信息)