好学IT学院:IT信息技术分享交流平台
来源:数据仓库之路  作者:佚名  发布时间:2008-11-07  ★★★加入收藏〗〖手机版
SQL SERVER数据库备份/恢复测试报告
摘要:为避免因火灾或软硬件故障等特殊原因而导致的数据丢失,数据库管理员通常需要制定一个完善的适用于本系统的灾难恢复计划,而解决的办法中数据库的定期备份又是最有效的途径。在一份合理的备份策略指导下,数据库将得到最大程度的保护和恢复。…

 三、 具体操作

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