你可以在BACKUP或RESTORE命令中定义磁带或磁盘的逻辑名称。定义设备会把它添加到sys.backup_devices目录视图,不用再键入磁盘路径和文件或磁带名称。
为了增加一个新的备份设备定义,可以使用sp_addumpdevice系统存储过程:
这些命令的参数描述请见表29-5。
表29-5 sp_addumpdevice参数
参 数 |
描 述 |
device_type |
用来指定设备类型:disk或tape |
logical_name |
将在BACKUP和RESTORE中使用的备份设备的名称 |
physical_name |
操作系统文件名(遵守通用命名约定(UNC)的名称)或磁带路径 |
controller_type |
不再需要的参数:2代表磁盘,5代表磁带 |
device_status |
这个选项确定ANSI磁盘标志是可读(noskip)还是被忽略(skip),在应用之前,noskip是磁带类型的默认值。该选项和controller_type只能指定其中一个,不能都指定 |
要查看备份设备的定义,可以使用sp_helpdevice系统存储过程,它只包含一个参数logical_ name:
删除备份设备使用sp_dropdevice:
第一个参数是备份设备的名称,当第二个参数指定了DELFILE时,将删除实际的备份设备文件。
在示例中的第一部分,创建了一个名为TestDBBackup的备份设备,它被映射到C:/Apress/Recipes/ TestDB_Device.bak文件上:
这个查询返回:
命令已成功完成。
下一步,使用sp_helpdevice查询关于设备的信息:
这个查询返回:
下一步,执行基于该设备的备份:
这个查询返回:
已为数据库'TestDB',文件'TestDB'(位于文件1上)处理了2472页。
已为数据库'TestDB',文件'TestDB_log'(位于文件1上)处理了1页。
BACKUP DATABASE成功处理了2473页,花费1.887秒(10.735MB/秒)。
最后,我们使用sp_dropdevice删除该设备(如果没有指定第二个选项DELFILE,物理备份文件还将保留在操作系统内):
这个查询返回:
设备已除去。
解析
在这个技巧中,我演示了如何创建一个命名的备份设备,它允许你不去键入你需要在BACKUP或RESTORE命令中指定的完整磁盘或磁带名称。
在此技巧中的第一个示例使用sp_addumpdevice创建了一个设备。存储过程的第一个参数设置设备类型为disk。第二个参数是设备的逻辑名称,第三个参数是实际的物理文件路径和名称。此技巧的第二个查询演示了使用sp_helpdevice来返回设备的信息。信息包括与设备描述相关的status字段,以及指定设备类型(2代表磁盘设备,5代表磁带)的cntrltype列。此技巧中的第三个查询演示了在备份中使用设备,它只是指定了设备名而不是使用DISK或TAPE选项,在此技巧的最后一个查询中,我们使用sp_dropdevice删除了该设备。