RESTORE HEADERONLY (Transact-SQL)
语法
RESTORE HEADERONLY
FROM <backup_device>
[ WITH
{
--Backup Set Options
FILE = { backup_set_file_number | @backup_set_file_number }
| PASSWORD = { password | @password_variable }
--Media Set Options
| MEDIANAME = { media_name | @media_name_variable }
| MEDIAPASSWORD = { mediapassword | @mediapassword_variable }
--Error Management Options
| { CHECKSUM | NO_CHECKSUM }
| { STOP_ON_ERROR | CONTINUE_AFTER_ERROR }
--Tape Options
| { REWIND | NOREWIND }
| { UNLOAD | NOUNLOAD }
} [ ,...n ]
]
[;]
<backup_device> ::=
{
{ logical_backup_device_name |
@logical_backup_device_name_var }
| { DISK | TAPE } = { 'physical_backup_device_name' |
@physical_backup_device_name_var }
}
结果集
对于给定设备上的每个备份,服务器均发送一行包含以下各列的标头信息:
注意 |
---|
RESTORE HEADERONLY 会查看介质上的所有备份集。因此,使用高容量磁带机时,生成此结果集可能需要一些时间。若要快速查看介质而不获取有关每个备份集的信息,请使用 RESTORE LABELONLY 或指定 FILE = backup_set_file_number。 |
注意 |
---|
由于 Microsoft 磁带格式的固有特点,来自其他软件程序的备份集可以与 Microsoft SQL Server 备份集在同一介质上占有空间。在由 RESTORE HEADERONLY 返回的结果集中,每一个来自其他软件程序的备份集都占用一行。 |
列名 |
数据类型 |
SQL Server 备份集说明 |
其他备份集说明 |
---|---|---|---|
BackupName |
nvarchar(128) |
备份集名称。 |
数据集名称 |
BackupDescription |
nvarchar(255) |
备份集说明。 |
数据集说明 |
BackupType |
smallint |
备份类型: 1 = 数据库 2 = 事务日志 4 = 文件 5 = 差异数据库 6 = 差异文件 7 = 部分 8 = 差异部分 |
备份类型: 1 = 正常 5 = 差异 16 = 增量 17 = 每天 |
ExpirationDate |
datetime |
备份集的过期时间。 |
NULL |
Compressed |
BYTE(1) |
是否使用基于软件的压缩对备份集进行压缩: 0 = 否 1 = 是 |
是否使用基于软件的压缩对备份集进行压缩: 0 = 否 1 = 是 |
位置 |
smallint |
备份集在卷中的位置(用于 FILE = 选项)。 |
备份集在卷中的位置 |
DeviceType |
tinyint |
与用于备份操作的设备对应的编号: 磁盘: 2 = 逻辑 102 = 物理 磁带: 5 = 逻辑 105 = 物理 虚拟设备: 7 = 逻辑 107 = 物理 逻辑设备名称和设备号在 sys.backup_devices 中;有关详细信息,请参阅 sys.backup_devices (Transact-SQL)。 |
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 |
LastLSN |
numeric(25,0) |
备份集之后的下一条日志记录的日志序列号。 |
NULL |
CheckpointLSN |
numeric(25,0) |
创建备份时最后一个检查点的日志序号。 |
NULL |
DatabaseBackupLSN |
numeric(25,0) |
最近的数据库完整备份的日志序列号。 DatabaseBackupLSN 是“检查点的起点”,将在备份开始时被触发。如果在数据库空闲且未配置复制进行备份,则此 LSN 将与 FirstLSN 一致。 |
NULL |
BackupStartDate |
datetime |
备份操作的开始日期和时间。 |
写入介质的日期 |
BackupFinishDate |
datetime |
备份操作的完成日期和时间。 |
写入介质的日期 |
SortOrder |
smallint |
服务器排列次序。该列仅对数据库备份有效。提供该列是为了向后兼容。 |
NULL |
CodePage |
smallint |
服务器使用的服务器代码页或字符集。 |
NULL |
UnicodeLocaleId |
int |
用于 Unicode 字符数据排序的服务器 Unicode 区域设置 ID 配置选项。提供该列是为了向后兼容。 |
NULL |
UnicodeComparisonStyle |
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 |
设置为 1 时单个标志位的含义: 1 = 日志备份包含大容量日志记录操作。 2 = 快照备份。 4 = 备份时数据库为只读。 8 = 备份时数据库处于单用户模式。 16 = 备份包含备份校验和。 32 = 备份时数据库损坏,但要求备份操作继续执行,不考虑发生的错误。 64 = 结尾日志备份。 128 = 包含不完整元数据的结尾日志备份。 256 = 包含 NORECOVERY 的结尾日志备份。
重要提示
我们建议您使用单个布尔值列(下面列出了以 HasBulkLoggedData 开始且以 IsCopyOnly 结束的列)代替 Flags。
|
NULL |
BindingID |
uniqueidentifier |
数据库的绑定 ID。这与 sys.database_recovery_statusdatabase_guid 相对应。恢复数据库时,会分配一个新值。另请参阅 FamilyGUID(见下文)。 |
NULL |
RecoveryForkID |
uniqueidentifier |
恢复分叉结尾的 ID。此列与 backupset 表中的 last_recovery_fork_guid 相对应。 对于数据备份,RecoveryForkID 等于 FirstRecoveryForkID。 |
NULL |
Collation |
nvarchar(128) |
数据库使用的排序规则。 |
NULL |
FamilyGUID |
uniqueidentifier |
创建时的原始数据库 ID。恢复数据库时,此值保持不变。 |
NULL |
HasBulkLoggedData |
bit |
1 = 包含大容量日志记录操作的日志备份。 |
NULL |
IsSnapshot |
bit |
1 = 快照备份。 |
NULL |
IsReadOnly |
bit |
1 = 备份时数据库为只读。 |
NULL |
IsSingleUser |
bit |
1 = 备份时数据库处于单用户模式。 |
NULL |
HasBackupChecksums |
bit |
1 = 备份包含备份校验和。 |
NULL |
IsDamaged |
bit |
1 = 备份时数据库损坏,但要求备份操作继续执行,不考虑发生的错误。 |
NULL |
BeginsLogChain |
bit |
1 = 这是一个连续的日志备份链中的第一个环节。日志链的开始处是创建数据库后所做的第一个日志备份,或者是数据库从简单模式切换到完整模式或大容量日志恢复模式时所做的第一个日志备份。 |
NULL |
HasIncompleteMetaData |
bit |
1 = 包含不完整元数据的结尾日志备份。 有关包含不完整元数据的结尾日志备份的信息,请参阅结尾日志备份。 |
NULL |
IsForceOffline |
bit |
1 = 采用 NORECOVERY 的备份;数据库采用脱机备份。 |
NULL |
IsCopyOnly |
bit |
1 = 仅复制备份。 仅复制备份不会影响数据库的总体备份和恢复进程。有关详细信息,请参阅仅复制备份。 |
NULL |
FirstRecoveryForkID |
uniqueidentifier |
起始恢复分叉的 ID。此列与 backupset 中的 first_recovery_fork_guid 相对应。 对于数据备份,FirstRecoveryForkID 等于 RecoveryForkID。 |
NULL |
ForkPointLSN |
numeric(25,0) NULL |
如果 FirstRecoveryForkID 不等于 RecoveryForkID,则此值为分叉点的日志序列号。否则,此值为 NULL。 |
NULL |
RecoveryModel |
nvarchar(60) |
数据库的恢复模式,可以是下列值之一: FULL BULK-LOGGED SIMPLE |
NULL |
DifferentialBaseLSN |
numeric(25,0) NULL |
对于单基准的差异备份,该值等于差异基准的 FirstLSN;大于或等于 DifferentialBaseLSN 的 LSN 的更改会包括在差异中。 对于多基准的差异备份,该值为 NULL,基准 LSN 必须在文件级别确定。有关详细信息,请参阅 RESTORE FILELISTONLY (Transact-SQL)。 对于非差异备份类型,该值始终为 NULL。 有关详细信息,请参阅差异备份的基准。 |
NULL |
DifferentialBaseGUID |
uniqueidentifier |
对于单基准的差异备份,该值为差异基准的唯一标识符。 对于多基准差异,此值为 NULL,且必须确定每个文件的差异基准。 对于非差异备份类型,此值为 NULL。 |
NULL |
BackupTypeDescription |
nvarchar(60) |
字符串形式的备份类型有以下几种: DATABASE TRANSACTION LOG FILE OR FILEGROUP DATABASE DIFFERENTIAL FILE DIFFERENTIAL PARTIAL PARTIAL DIFFERENTIAL |
字符串形式的备份类型有以下几种: NORMAL DIFFERENTIAL INCREMENTAL DAILY |
BackupSetGUID |
uniqueidentifier NULL |
备份集的唯一标识号,可以根据此标识号在介质上标识备份集。 |
NULL |
CompressedBackupSize |
bigint |
备份集的字节计数。对于未压缩的备份,该值与 BackupSize 相同。 若要计算压缩率,请使用 CompressedBackupSize 和 BackupSize。 在 msdb 升级期间,该值设置为与 BackupSize 列的值匹配的值。 |
NULL |
注意 |
---|
如果为备份集指定了密码,则 RESTORE HEADERONL 只显示其密码与命令中指定的 PASSWORD 选项相匹配的备份集的完整信息。RESTORE HEADERONLY 还显示没有密码保护的备份集的完整信息。介质上其他受密码保护的备份集的 BackupName 列将被设为 '***Password Protected***',而剩下的所有列将为 NULL。 |
注释
客户端可以使用 RESTORE HEADERONLY 检索特殊备份设备上的所有备份的所有备份标头信息。对于备份设备上的每个备份,服务器都会将标头信息作为一行发送。
权限
从 SQL Server 2008 开始,获取有关备份集或备份设备的信息需要具有 CREATE DATABASE 权限。有关详细信息,请参阅 GRANT 数据库权限 (Transact-SQL)。
在备份时,可以根据需要为介质集、备份集或这两者指定密码。如果已经在介质集或备份集上定义了密码,则必须在 RESTORE 语句中指定正确的密码。这些密码可防止未经授权的用户使用 Microsoft SQL Server 工具执行还原操作和向介质追加备份集。但是,密码不会阻止使用 BACKUP 语句的 FORMAT 选项覆盖介质。
安全说明 |
---|
此密码提供的安全性较低。它旨在防止经过授权的用户或未经授权的用户使用 SQL Server 工具执行不正确的还原操作。但是不能防止通过其他方式或通过替换密码来读取备份数据。后续版本的 Microsoft SQL Server 将删除该功能。请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。保护备份的最佳做法是将备份磁带存储在安全的位置,或者备份到由适当的访问控制列表 (ACL) 保护的磁盘文件。ACL 应设置在创建备份的根目录下。 |
示例
以下示例返回磁盘文件 C:\AdventureWorks2008R2-FullBackup.bak 标头中的信息。
RESTORE HEADERONLY
FROM DISK = N'C:\AdventureWorks2008R2-FullBackup.bak'
WITH NOUNLOAD;
GO