一、直接备份到磁盘文件
--完整备份数据库到磁盘文件
backup database DemoDB2008 --备份数据库
to disk='c:\sql2008trainning\BackupDB\DemoDB2008.bak'
with name='DemoDB2008 完整备份',
description='DemoDB2008 backup'
--差异备份数据库到磁盘文件
backup database DemoDB2008
to disk = 'c:\sql2008trainning\BackupDB\DemoDB2008.bak'
with differential,name='DemoDB2008 差异备份'
--备份事务日志到磁盘文件
backup log DemoDB2008
to disk = 'c:\sql2008trainning\BackupDB\DemoDB2008.bak'
with name = 'DemoDB2008 日志备份'
--拷贝数据库到磁盘文件
backup database DemoDB2008
to disk='c:\sql2008trainning\BackupDB\DemoDB2008_copy.bak'
with copy_only
二、备份到备份设备
如何创建备份设别呢?可以通过
sp_addumpdevice
存储过程,语法如下:
sp_addumpdevice
[ @devtype = ] 'device_type'
, [ @logicalname = ] 'logical_name'
, [ @physicalname = ] 'physical_name'
device_type
表示备份设备的类型,可以使用disk(磁盘)或磁带(tape)这2个枚举,disk表示用硬盘文件作为备份设备。tape表示
windows
支持的任何磁带设备。tape在未来版本中可能将不再支持,所以尽量使用disk。
logical_name
表示备份设备的逻辑名称。在 BACKUP 和 RESTORE 语句中将会被使用。
physical_name
表示备份设备的物理名称。
通过磁盘文件来创建备份设备:
use master;
go
exec sp_addumpdevice 'disk', 'DemoDB2008ToDisk', 'c:\sql2008trainning\BackupDB\DemoDB2008Device.bak';
go
exec sp_addumpdevice 'disk', 'DemoDB2008ToDisk', 'c:\sql2008trainning\BackupDB\DemoDB2008Device.bak';
还可以通过网络共享磁盘文件来创建备份设备:
use master;
go
exec sp_addumpdevice 'disk', 'DemoDB2008ToDisk', '\\192.168.1.159\ShareBakFromLiTao\DemoDB2008Device.bak';
go
exec sp_addumpdevice 'disk', 'DemoDB2008ToDisk', '\\192.168.1.159\ShareBakFromLiTao\DemoDB2008Device.bak';
使用备份设备DemoDB2008ToDisk创建各种备份的代码如下:
--完整备份数据库到备份设备
backup database DemoDB2008
to DemoDB2008ToDisk--备份设备
with name='DemoDB2008 完整备份',
description='DemoDB2008 backup'
--差异备份数据库到备份设备
backup database DemoDB2008
to DemoDB2008ToDisk
with differential,name='DemoDB2008 差异备份'
--备份事务日志到备份设备
backup log DemoDB2008
to DemoDB2008ToDisk
with name = 'DemoDB2008 日志备份'
--仅拷贝数据库到备份设备
backup database DemoDB2008
to DemoDB2008ToDisk
with copy_only
--尾日志备份--
backup log DemoDB2008
to DemoDB2008ToDisk
with name = 'DemoDB2008 尾日志备份',norecovery
backup database DemoDB2008
to DemoDB2008ToDisk--备份设备
with name='DemoDB2008 完整备份',
description='DemoDB2008 backup'
--差异备份数据库到备份设备
backup database DemoDB2008
to DemoDB2008ToDisk
with differential,name='DemoDB2008 差异备份'
--备份事务日志到备份设备
backup log DemoDB2008
to DemoDB2008ToDisk
with name = 'DemoDB2008 日志备份'
--仅拷贝数据库到备份设备
backup database DemoDB2008
to DemoDB2008ToDisk
with copy_only
--尾日志备份--
backup log DemoDB2008
to DemoDB2008ToDisk
with name = 'DemoDB2008 尾日志备份',norecovery