三、 具体操作
1、增删备份设备:为方便指定备份位置,常引用逻辑名称来代替物理设备。
1) 增加备份设备:
语法如下:
sp_addumpdevice [ @devtype = ] 'device_type' ,
[ @logicalname = ] 'logical_name' ,
[ @physicalname = ] 'physical_name'
[ , { [ @cntrltype = ] controller_type
[ @devstatus = ] 'device_status'
}
]
其中:
[@devtype =] 'device_type' 指定设备类型。
[@logicalname =] 'logical_name' 指定设备的逻辑名称。
[@physicalname =] 'physical_name' 指定设备的路径和文件名。
例如:这是一个网络连接的设备备份。
USE master
EXEC sp_addumpdevice 'disk', 'networkdevice',
'\\servername\sharename\path\filename.exe'
go
2)删除备份设备:
sp_dropdevice [ @logicalname = ] 'device' [ , [ @delfile = ] 'delfile' ]
其中delfile指出是否应该删除物理备份设备文件。delfile 的数据类型为 varchar(7)。如果将其指定为 DELFILE,那么就会删除物理备份设备磁盘文件。例如:USE master EXEC sp_dropdevice ‘backupzy’
3) 多个备份设备同时存储备份:在进行数据库备份时,指定几个备份设备同时存储,这样速度将有提高。要求多个设备媒体类型相同。备份集包括单一备份操作结果,媒体集包括多个备份设备。
2、备份数据库
BACKUP DATABASE { database_name
@database_name_var } **必写 TO < backup_device > [ ,...n ]
**可以是多个逻辑或物理备份设备, 最多64个,必写 [ WITH [ [ , ] FORMAT
NOFORMAT ] **FORMAT第一次使用媒体时对备份媒体 进行完全初始化,并覆盖任何现有的媒体头,此时无须指定INIT和SKIP 子句 [ [ , ] { INIT
NOINIT } ] **INIT重写所有备份集,但是保留媒体头。媒 体上的备份设置没有全部过期,或者是如果 BACKUP 语句给出了备 份集名,该备份集名与备份媒体上的名称不匹配,则不重写备份媒体 默认为NOINIT [ [ , ] MEDIANAME = { media_name
@media_name_variable } ] **最多 128个字符,假如指定MEDIANAME,则它必须与以前指定的媒体名相匹配 [ [ , ] RESTART ] **从中断点开始重新备份操作。[ BLOCKSIZE = { blocksize
@blocksize_variable } ] **可以用它指定磁带的物理块大小,默认65,536,如果备份到CD-ROM,设为2048 [ [ , ] { NOUNLOAD
UNLOAD } ] **备份完成时UNLOAD项使SQL Server 自动从磁带驱动器倒带并卸载磁带,NOUNLOAD项反之。[ [ , ] { NOSKIP
SKIP } ] **SKIP项跳过标头(忽略磁带驱动器上的ANSI 磁带卷标),禁用备份集过期和名称检查,NOSKIP反之。] 例如:BACKUP DATABASE master TO TAPE = '.Tape0' WITH FORMAT,NAME=’full backup of master’
3.备份事务日志
BACKUP LOG { database_name
@database_name_var } TO < backup_device > [ ,...n ] [ WITH [ [ , ] { INIT
NOINIT } ] [ [ , ] NAME = { backup_set_name
@backup_set_name_var } ] [ [ , ] NO_TRUNCATE ] **备份最近的数据库活动,允许在数据库损坏时备份日志 ] 例如:BACKUP LOG testzy TO backupzy,backupzy1 WITH INIT,NAME=’full log backup of testzy’
4.清除事务日志(事务日志满时)
1)BACKUP LOG { database_name
@database_name_var } TO < backup_device > [ ,...n ] [ WITH {TRUNCATE_ONLY
NO_LOG} ] 用于截断日志,释放日志文件内部的空间,但日志本身大小不变。
2)DBCC SHRINKDATABASE (database_name [, target_percent] [,{ NOTRUNCATE
TRUNCATEONLY }] ) 用于减小事务日志文件大小。
3)设置trunc. log on chkpt.为真,当出现检查点是将自动截断日志。
5.备份差异数据库
BACKUP DATABASE { database_name
@database_name_var } TO < backup_device > [ ,...n ] [ WITH [ [ , ] DIFFERENTIAL ] ] 例如:BACKUP DATABASE testzy TO backupzy,backupzy1 with differential 6.文件或文件组备份(必须执行事务日志备份) BACKUP DATABASE { database_name
@database_name_var } { FILE=logical_file_name
FILEGROUP=logical_filegroup_name> } [ ,...n ] TO < backup_device > [ ,...n ] 例如: BACKUP DATABASE testzy FILE= 'testzy_Data' TO backupzy,backupzy1 BACKUP LOG testzy TO backupzy,backupzy1