sp_addumpdevice (Transact-SQL)

适用于:SQL Server

适用于:SQL Server(SQL Server 2008 [10.0.x] 至当前版本)。

将备份设备添加到 SQL Server 实例。

Transact-SQL 语法约定

语法

  
sp_addumpdevice [ @devtype = ] 'device_type'   
    , [ @logicalname = ] 'logical_name'   
    , [ @physicalname = ] 'physical_name'  
      [ , { [ @cntrltype = ] controller_type |  
          [ @devstatus = ] 'device_status' }  
      ]  

参数

[ @devtype = ] 'device_type' 备份设备的类型。 device_typevarchar (20) ,没有默认值,可以是以下值之一。

说明
磁盘 硬盘文件作为备份设备。
磁带 Microsoft Windows 支持的任何磁带设备。

注意:在 SQL Server的未来版本中将不再支持磁带备份设备。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

[ @logicalname = ] 'logical_name' BACKUP 和 RESTORE 语句中使用的备份设备的逻辑名称。 logical_namesysname,没有默认值,不能为 NULL。

[ @physicalname = ] 'physical_name' 备份设备的物理名称。 物理名称必须遵从操作系统文件名规则或网络设备的通用命名约定,并且必须包含完整路径。 physical_namenvarchar (260) ,没有默认值,不能为 NULL。

在远程网络位置上创建备份设备时,请确保启动数据库引擎时所使用的名称在远程计算机上具有适当的写入功能。

如果添加磁带设备,此参数必须是 Windows 分配给本地磁带设备的物理名称;例如,计算机上第一个磁带设备的 \\.\TAPE0 。 磁带设备必须连接到服务器计算机上,不能远程使用。 如果名称包含非字母数字的字符,请用引号将其引起来。

注意

此过程会在目录中输入指定的物理名称。 该过程不会尝试访问或创建设备。

[ @cntrltype = ] 'controller_type' 过时。 如果指定该选项,则忽略此参数。 支持它完全是为了向后兼容。 sp_addumpdevice的新用法应省略此参数。

[ @devstatus = ] 'device_status' 过时。 如果指定该选项,则忽略此参数。 支持它完全是为了向后兼容。 sp_addumpdevice的新用法应省略此参数。

返回代码值

0(成功)或 1(失败)

结果集

备注

sp_addumpdevice 将备份设备添加到 sys.backup_devices 目录视图。 然后便可以在 BACKUP 和 RESTORE 语句中逻辑引用该设备。 sp_addumpdevice 不对物理设备执行任何访问。 只有在执行 BACKUP 或 RESTORE 语句后才会访问指定的设备。 创建一个逻辑备份设备可简化 BACKUP 和 RESTORE 语句,在这种情况下指定设备名称将代替使用 "TAPE =" 或 "DISK =" 子句指定设备路径。

所有权和权限问题可能干扰磁盘或文件备份设备的使用。 请确保为启动数据库引擎时所使用的 Windows 帐户授予适当的文件权限。

数据库引擎支持将磁带备份到 Windows 支持的磁带设备。 有关 Windows 支持的磁带设备的详细信息,请参阅 Windows 的硬件兼容性列表。 若要查看计算机上可用的磁带设备,请使用 SQL Server Management Studio。

对于特定的磁带机,请仅使用驱动器厂商建议的推荐磁带。 如果您使用的是数字音频磁带 (DAT) 驱动器,请使用计算机级的 DAT 磁带(数字数据存储 (DDS))。

sp_addumpdevice 不能在事务内执行。

若要删除设备,请使用 sp_dropdeviceSQL Server Management Studio

权限

要求具有 diskadmin 固定服务器角色中的成员身份。

要求拥有写入磁盘的权限。

示例

A. 添加磁盘转储设备

下面的示例添加了一个名为 mydiskdump 的磁盘备份设备,其物理名称为 c:\dump\dump1.bak

USE master;  
GO  
EXEC sp_addumpdevice 'disk', 'mydiskdump', 'c:\dump\dump1.bak';  

B. 添加网络磁盘备份设备

下面的示例显示了添加名为 networkdevice 的远程磁盘备份设备的过程。 启动数据库引擎的名称必须具有对该远程文件 (\\<servername>\<sharename>\<path>\<filename>.bak) 的权限。

USE master;  
GO  
EXEC sp_addumpdevice 'disk', 'networkdevice',  
    '\\<servername>\<sharename>\<path>\<filename>.bak';  

C. 添加磁带备份设备

下面的示例添加物理名称为 tapedump1\\.\tape0 设备。

USE master;  
GO  
EXEC sp_addumpdevice 'tape', 'tapedump1', '\\.\tape0';  

D. 备份到逻辑备份设备

以下示例为某备份磁盘文件创建了名为 AdvWorksData 的逻辑备份设备。 该示例随后会将 AdventureWorks2022 数据库备份到此逻辑备份设备。

USE master;  
GO  
EXEC sp_addumpdevice 'disk', 'AdvWorksData',   
'C:\Program Files\Microsoft SQL Server\MSSQL13.MSSQLSERVER\MSSQL\BACKUP\AdvWorksData.bak';  
GO  
BACKUP DATABASE AdventureWorks2022   
 TO AdvWorksData  
   WITH FORMAT;  
GO  

另请参阅

备份设备 (SQL Server)
BACKUP (Transact-SQL)
为磁盘文件定义逻辑备份设备 (SQL Server)
为磁带机定义逻辑备份设备 (SQL Server)
RESTORE (Transact-SQL)
sp_dropdevice (Transact-SQL)
sys.backup_devices (Transact-SQL)
系统存储过程 (Transact-SQL)