SQLSERVER中的逻辑设备和物理设备
SQLSERVER中的逻辑设备和物理设备
这里说一下我的理解:
实际上逻辑设备就是代替物理路径的一个别名
比如“Sales_Fullbak” 就是一个逻辑设备,或者叫逻辑设备名
"D:\Backups\Sales\Full_20060601.bak"就是一个物理设备,或者叫物理设备名字,或者叫物理路径
-----------------------------------------------------------华丽的分割线--------------------------------------------------
为什麽有逻辑设备,因为在使用restore或者backup语句的时候,通常我们都要加“tape=”或“disk=”子句指定设备名称(物理路径)
但是有了逻辑设备之后就不要那么麻烦了,直接指定逻辑设备就可以了
添加逻辑设备的示例,使用sp_addumpdevice 存储过程
1 --创建一个名为Sales_Fullbak的磁盘备份设备,其物理名称为D:\Backups\Sales\Full_20060601.bak 2 EXEC [sys].[sp_addumpdevice] @devtype = 'disk', -- varchar(20) 3 @logicalname = 'Sales_Fullbak', -- sysname 4 @physicalname = N'D:\Backups\Sales\Full_20060601.bak', -- nvarchar(260) 5 @cntrltype = 0, -- smallint 6 @devstatus = '' -- varchar(40) 7 8 --创建一个远程磁盘备份设备 9 EXEC [sys].[sp_addumpdevice] @devtype = 'disk', -- varchar(20) 10 @logicalname = 'networkdevice', -- sysname 11 @physicalname = N'\servername\sharename\path\filename.bak', -- nvarchar(260) 12 @cntrltype = 0, -- smallint 13 @devstatus = '' -- varchar(40)
添加完毕之后会在[sysdevices]视图中看到添加的逻辑设备和对应的物理设备
---------------------------------------------华丽的分割线----------------------------------------------------------------------
添加完毕之后便可以在backup和restore语句中逻辑引用该设备
[sp_addumpdevice]不执行对物理设备的任何访问。只有在执行backup和restore语句后,才会访问指定的设备。
创建一个逻辑备份设备可简化backup和restore语句
例如:
1 --在D盘建立好这些文件夹就可以了 D:\Backups\Sales 2 BACKUP DATABASE [GPOSDB] TO Sales_Fullbak