RESTORE 陈述 - VERIFYONLY (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例

验证备份但不还原备份,检查备份集是否完整以及整个备份是否可读。 然而,不 RESTORE VERIFYONLY 尝试验证备份卷中数据的结构。 在 Microsoft SQL Server 中,RESTORE VERIFYONLY已增强对数据进行额外检查,以提高错误检测概率。 其目标是尽可能接近实际的还原操作。 有关详细信息,请参阅“备注”部分。

如果备份有效,SQL Server 数据库引擎会返回一条成功消息。

注意

关于论证的描述,请参见 RESTORE 论证(Transact-SQL)

Transact-SQL 语法约定

语法

RESTORE VERIFYONLY  
FROM <backup_device> [ ,...n ]  
[ WITH    
 {  
   LOADHISTORY   
  
--Restore Operation Option  
 | MOVE 'logical_file_name_in_backup' TO 'operating_system_file_name'   
          [ ,...n ]   
  
--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 }  
  
--Monitoring Options  
 | STATS [ = percentage ]   
  
--Tape Options  
 | { REWIND | NOREWIND }   
 | { UNLOAD | NOUNLOAD }    
 } [ ,...n ]  
]  
[;]  
  
<backup_device> ::=  
{   
   { logical_backup_device_name |  
      @logical_backup_device_name_var }  
   | { DISK | TAPE | URL } = { 'physical_backup_device_name' |  
       @physical_backup_device_name_var }   
}  
  

注意

URL 是用于为 Microsoft Azure Blob 存储指定位置和文件名的格式,从 SQL Server 2012 (11.x) SP1 CU2 开始受支持。 虽然 Microsoft Azure 存储是一种服务,不过实现与磁盘和磁带类似,从而可为所有三种设备提供一致且无缝的还原体验。

参数

关于论证的 RESTORE VERIFYONLY 描述,请参见 RESTORE 论证(Transact-SQL)

一般备注

介质集或备份集必须包含最低限度的正确信息,才能被解释为 Microsoft Tape Format。 如果没有, RESTORE VERIFYONLY 则停止,表示备份格式无效。

执行 RESTORE VERIFYONLY 的检查包括:

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

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

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

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

注意

RESTORE VERIFYONLY 无法在数据库快照中工作。 要在恢复操作之前验证数据库快照,可以运行 DBCC CHECKDB。

注意

对于快照备份, RESTORE VERIFYONLY 确认备份文件指定位置中快照的存在。 快照备份是 SQL Server 2016 (13.x) 中的新功能。 有关快照备份的详细信息,请参阅 Azure 中数据库文件的文件快照备份

安全性

在备份时,可以根据需要为介质集、备份集或这两者指定密码。 当在媒体集或备份集上定义了密码时,你必须在语句中 RESTORE 指定正确的密码。 这些密码可防止未经授权而使用 SQL Server 工具执行还原操作以及向介质追加备份集。 然而,密码并不能阻止使用 BACKUP 语句中的FORMAT选项覆盖媒体。

重要

此密码提供的安全性较低。 它旨在防止经过授权的用户或未经授权的用户使用 SQL Server 工具执行不正确的还原操作。 但是不能防止通过其他方式或通过替换密码来读取备份数据。 在 SQL Server的未来版本中将删除此功能。 避免在新开发工作中使用此功能,并计划修改当前使用此功能的应用程序。 保护备份的最佳做法是将备份磁带存储在安全位置或备份到受适当访问控制列表(ACL)保护的磁盘文件。 ACL 应设置在创建备份的根目录下。

权限

从SQL Server 2008(10.0.x)开始,获取备份集或备份设备的信息需要CREATE DATABASE权限。 有关详细信息,请参阅GRANT数据库权限(Transact-SQL)。

示例

以下示例从磁盘验证备份。

RESTORE VERIFYONLY FROM DISK = 'D:\AdventureWorks.bak';
GO

另请参阅

BACKUP (Transact-SQL)
介质集、介质簇和备份集 (SQL Server)
RESTORE REWINDONLY (Transact-SQL)
RESTORE (Transact-SQL)
备份历史记录和标头信息 (SQL Server)