Transact-SQL 参考

RESTORE HEADERONLY

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

语法

RESTORE HEADERONLY
FROM < backup_device >
[ WITH { NOUNLOAD | UNLOAD }

    [ [ , ] FILE = file_number ]
    [ [ , ] PASSWORD = { password | @password_variable } ]

    [ [ , ] MEDIAPASSWORD = { mediapassword | @mediapassword_variable } ]
]

< backup_device > ::=
    {
        { 'logical_backup_device_name' | @logical_backup_device_name_var }
        | { DISK | TAPE } =
            
{ 'physical_backup_device_name' | @physical_backup_device_name_var }
    }

参数

< backup_device >

指定还原时要使用的逻辑或物理备份设备。可以是下列选项之一:

{'logical_backup_device_name' | @logical_backup_device_name_var}
是由 sp_addumpdevice 创建的备份设备(数据库将从该备份设备还原)的逻辑名称,该名称必须符合标识符规则。如果作为变量 (@logical_backup_device_name_var) 提供,则备份设备名可以是字符串常量 (@logical_backup_device_name_var = 'logical_backup_device_name') 或字符串数据类型(ntext text 数据类型除外)的变量。
{DISK | TAPE } =
'physical_backup_device_name' | @physical_backup_device_name_var

允许从命名磁盘或磁带设备还原备份。磁盘或磁带的设备类型应该用设备的真实名称(例如:完整的路径和文件名)来指定:DISK = 'C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\Mybackup.dat' 或 TAPE = '\\.\TAPE0'。如果指定为变量 (@physical_backup_device_name_var),则设备名称可以是字符串常量 (@physical_backup_device_name_var = 'physical_backup_device_name') 或字符串数据类型(ntext text 数据类型除外)的变量。

如果使用的是含有 UNC 名称的网络服务器或已重新定向的驱动器号,则请指定磁盘的设备类型。

NOUNLOAD

指定不在还原后从磁带机中自动卸载磁带。设置始终为 NOUNLOAD,直到指定 UNLOAD 为止。该选项只用于磁带设备。

UNLOAD

指定在还原完成后自动倒带并卸载磁带。启动新用户会话时其默认设置为 UNLOAD。设置始终为 UNLOAD,直到指定 NOUNLOAD 为止。该选项只用于磁带设备。

FILE = file_number

标识待描述的备份集。例如,file_number 为 1 表示第一个备份集,file_number 为 2 表示第二个备份集。如果未指定,则描述设备上的所有备份集。

PASSWORD = { password | @password_variable}

是备份集的密码。 PASSWORD 是一个字符串。如果在创建备份集时提供了密码,则从备份集执行还原操作时必须提供密码。

有关使用密码的更多信息,请参见"权限"。

MEDIAPASSWORD = { mediapassword | @mediapassword_variable}

是媒体集的密码。MEDIAPASSWORD 是一个字符串。

如果格式化媒体集时提供了密码,则在该媒体集上创建备份集时必须提供密码。另外,从该媒体集执行任何还原操作时也必须提供媒体密码。

结果集

对于给定设备上的每个备份,服务器均发送一行含有以下各列的首部信息:

说明  由于 RESTORE HEADERONLY 查看媒体上的所有备份集,因此在使用高容量磁带机时可能要花一些时间生成该结果集。若只想快速查看媒体而无需了解每个备份集的信息,请使用 RESTORE LABELONLY 或指定 FILE = file_number

由于 Microsoft 磁带格式的固有特点,来自其它软件程序的备份集可以与 Microsoft® SQL Server™ 2000 备份集在同一媒体上占有空间。在由 RESTORE HEADERONLY 返回的结果集中,这些其它备份集中的每个各占一行。


列名

数据类型
SQL Server 备份集描述 其它备份集描述
BackupName nvarchar(128) 备份集名称。 数据集名称
BackupDescription nvarchar(255) 备份集描述。 数据集描述
BackupType smallint 备份类型:

1 = 数据库
2 = 事务日志
4 = 文件
5 = 差异
数据库
6 = 差异文件

备份类型:

1 = 标准
5 = 差异
16 = 增量
17 = 每天

ExpirationDate datetime 备份集的过期时间。 NULL
Compressed tinyint 0 = 否。SQL Server 不支持软件压缩。 是否使用基于软件的压缩对备份集进行压缩:

1 = 是
0 = 否

Position smallint 备份集在卷中的位置(用于 FILE = 选项)。 备份集在卷中的位置
DeviceType tinyint 与用于备份操作的设备对应的编号:

磁盘
2 = 逻辑
102 = 物理

磁带
5 = 逻辑
105 = 物理

管道
6 = 逻辑
106 = 物理

虚拟设备
7 = 逻辑
107 = 物理

所有物理设备名和设备号可从 sysdevices 中查找。

NULL
UserName nvarchar(128) 执行备份操作的用户名。 执行备份操作的用户名
ServerName nvarchar(128) 写入备份集的服务器名称。 NULL
DatabaseName nvarchar(128) 已备份的数据库名称。 NULL
DatabaseVersion int 从其中创建备份的数据库版本。 NULL
DatabaseCreationDate datetime 数据库的创建日期和时间。 NULL
BackupSize numeric(20,0) 备份大小(以字节为单位)。 NULL
FirstLSN numeric(25,0) 备份集中第一个事务的日志序号。对文件备份为 NULL。 NULL
LastLSN numeric(25,0) 备份集中最后一个事务的日志序号。对文件备份为 NULL。 NULL
CheckpointLSN numeric(25,0) 创建备份时最后一个检查点的日志序号。 NULL
DatabaseBackupLSN numeric(25,0) 最新的完整数据库备份的日志序列号。 NULL
BackupStartDate datetime 备份操作的开始日期和时间。 写入媒体的日期
BackupFinishDate datetime 备份操作的完成日期和时间。 写入媒体的日期
SortOrder smallint 服务器排列次序。该列仅对数据库备份有效。为向后兼容性而提供。 NULL
CodePage smallint 服务器使用的服务器代码页或字符集。 NULL
UnicodeLocaleId int 用于 Unicode 字符数据排序的服务器 Unicode 区域设置 ID 配置选项。为向后兼容性而提供。 NULL
UnicodeComparisionStyle int 服务器 Unicode 比较风格配置选项,可提供对 Unicode 数据排序的额外控制。为向后兼容性而提供。 NULL
CompatibilityLevel tinyint 从其中创建备份的数据库兼容级别设置。 NULL
SoftwareVendorId int 软件供应商标识号。对于 SQL Server,该号码是 4608(用十六进制表示是 0x1200)。 软件供应商标识号
SoftwareVersionMajor int 创建备份集的服务器主要版本号。 创建备份集的软件的主要版本号
SoftwareVersionMinor int 创建备份集的服务器次要版本号。 创建备份集的软件的次要版本号
SoftwareVersionBuild int 创建备份集的服务器内部版本号码。 NULL
MachineName nvarchar(128) 执行备份操作的计算机名称。 执行备份操作的计算机的类型
Flags int 位 0 (X1) 表示在此日志备份中捕获大容量日志记录数据。 NULL
BindingID uniqueidentifier 数据库的绑定 ID。 NULL
RecoveryForkID uniqueidentifier 此备份的当前恢复派生的 ID。 NULL
Collation nvarchar(128) 数据库使用的排序规则。 NULL

说明  如果为备份集指定了密码,则 RESTORE HEADERONLY 将只显示密码与命令中指定的 PASSWORD 选项相匹配的备份集的完整信息。RESTORE HEADERONLY 还显示没有密码保护的备份集的完整信息。媒体上其它受密码保护的备份集的 BackupName 列将被设为 '***Password Protected***',而剩下的所有列将为 NULL。

权限

任何用户都可以使用 RESTORE HEADERONLY。

此外,用户可以为媒体集、备份集或两者指定密码。如果为媒体集指定了密码,则用户若只是适当的固定服务器和数据库角色成员还不足以执行备份。用户还必须提供媒体密码才能执行这些操作。同样,除非在还原命令中指定正确的媒体集密码和备份集密码,否则不能执行还原操作。

在 BACKUP 语句中,定义备份集密码和媒体集密码为可选功能。使用密码可防止利用 SQL Server 2000 工具未经授权地执行还原操作和在媒体中添加备份集,但是,密码不能防止通过 FORMAT 选项重写媒体。

因此,尽管使用密码对防止利用 SQL Server 工具未经授权地访问媒体内容有帮助,但密码不能防止媒体内容被破坏。密码不能完全防止未经授权地访问媒体内容,原因在于备份集中的数据没有加密,理论上可以被专为此目的创建的程序所检查。对于安全性至关重要的场合,防止未经授权的个人访问媒体非常重要。

指定密码时不限定使用者的做法是错误的。

注释

客户端可以使用 RESTORE HEADERONLY 检索特殊备份设备上的所有备份的所有备份首部信息。对于表中给定备份设备上的每个备份,服务器均发送一行首部信息。

重要  为维护向后兼容性,在 RESTORE 语句语法中可以使用 LOAD 关键字代替 RESTORE 关键字。

请参见

备份和还原数据库

BACKUP

数据类型

RESTORE

RESTORE FILELISTONLY

RESTORE VERIFYONLY

RESTORE LABELONLY

使用媒体集及媒体家族

使用标识符