天天看点

sql2005数据库备份,完整,差异备份

差异备份和完全备份,把备份文件同时拷贝到异地服务器,实现异地备份: 一、差异备份,把下面语句直接放在任务里面定时执行,实现差异备份。     DECLARE @ss VARCHAR(200),

          @des_hisdb varchar(200),

          @des_ehr varchar(200)  

 SET @ss = replace(replace(replace(CONVERT(varchar, getdate(), 120 ),'-',''),' ',''),':','')

SET @des_hisdb= 'S:/databaseBack/hisdb_diff_backup_'[email protected] +'.bak'

--差异备份hisdb

BACKUP DATABASE [hisdb] TO  DISK = @des_hisdb

WITH  DIFFERENTIAL ,RETAINDAYS = 7,NOFORMAT, NOINIT,   

NAME = 'hisdb-差异 数据库 备份', SKIP, NOREWIND,  

NOUNLOAD,  STATS = 10

SET @des_ehr= 'S:/databaseBack/ehr_diff_backup_'[email protected] +'.bak'

--差异备份ehr

BACKUP DATABASE [ehr] TO  DISK = @des_ehr

WITH  DIFFERENTIAL ,RETAINDAYS = 7,NOFORMAT, NOINIT,   

NAME = 'ehr-差异 数据库 备份', SKIP, NOREWIND, NOUNLOAD,   

STATS = 10 --***********  开始异地备份

---显示高级选项(仅需执行一次)

EXEC sp_configure 'show advanced options', 1  

RECONFIGURE ---允许执行xp_cmdshell  

EXEC sp_configure 'xp_cmdshell', 1  

RECONFIGURE declare  

  @cmd_sql varchar(200)

--定义网络映射驱动器

exec master..xp_cmdshell 'net use z:   //192.168.0.18/hisdb_mz  "密码" /user:administrator'    --copy备份文件到网络驱动器,实现异地存储备份

set @cmd_sql = 'copy   '[email protected]_hisdb+'  z:'

EXEC [master]..xp_cmdshell @cmd_sql set @cmd_sql = 'copy   '[email protected]_ehr+'  z:'

EXEC [master]..xp_cmdshell @cmd_sql --删除网络映射  

exec master..xp_cmdshell 'net use z: /delete'     二、完整备份     具体方法只需对上面sql语句稍作修改     1.把BACKUP语句 里面的DIFFERENTIAL 删除。     2.修改文件保存名字。     3.把所有文字“差异”跟换为“完整”