好吧;我用BACK EXEC备份数据库到一台HP服务器的时候老是失败,估计是什么BUG造成的,和它做斗争近1周无效。每次都备份到失败。找不到原因。现在只能用老办法写一个AGENT执行,记录下来备用
作用:备份SQL数据库到本地,然后移动备份成功的文件到远程,如果执行成功则删除远程路径上过期的文件。过期时间可以自定义
- --打开高级设置
- EXEC sp_configure 'show advanced options', 1
- RECONFIGURE
- --打开xp_cmdshell扩展存储过程
- EXEC sp_configure 'xp_cmdshell', 1
- RECONFIGURE
- declare @strdirname varchar(100) --目标文件名称
- declare @RemotePathstr varchar(100) --远程路径名
- declare @RemotePathBase varchar(100) --远程共享名称
- declare @LocalPathstr varchar(100) --本机路径名
- declare @DBName varchar(100) --待备份数据库名称
- declare @RetentionPeriod smallint --备份文件保留期限,超过后删除超期文件.
- declare @strRetentionPeriod varchar(100) --设置过期的文件名称已便删除
- set @RetentionPeriod = 7
- set @DBName='wlaccdata'
- set @RemotePathBase = '\\xmerp\wlaccerp'
- --设置待备份数据库名称
- set @strdirname=@DBName+replace(substring(convert(varchar(20),getdate(),120),1,10),'-','')
- --设置过期数据库备份文件名称
- set @strRetentionPeriod = @DBName + replace(substring(convert(varchar(20),getdate()-@RetentionPeriod,120),1,10),'-','')
- --设置备份文件名
- set @RemotePathstr = @RemotePathBase + '\' + @strdirname + '.bak'
- set @LocalPathstr = 'D:\\backuptemp\\'+@strdirname+'.bak' --设置远程备份保存目标
- set @strRetentionPeriod = @strRetentionPeriod + '.bak'
- --实施备份
- backup database @DBName to disk=@LocalPathstr
- --映射网络路径
- declare @cmd_map varchar(100)
- set @cmd_map = 'net use z: ' + @RemotePathBase + ' /user:sqluser "password"'
- PRINT @cmd_map
- exec xp_cmdshell @cmd_map
- ---移动备份文件到网络路径.
- DECLARE @result int
- declare @cmd varchar(100)
- set @cmd = 'move '+ @LocalPathstr+' z:\'
- exec @result = master..xp_cmdshell @cmd
- --如果移动文件执行成功则删除过期的文件
- if(@result = 0)
- BEGIN
- PRINT 'SUCESS!'
- declare @cmd_del varchar(100)
- set @cmd_del = 'del z:\' + @strRetentionPeriod
- exec master..xp_cmdshell @cmd_del
- END
- ELSE
- PRINT 'MOVE BACKUP FAILED!'
- --删除映射网络路径
- set @cmd_map = 'net use z: /delete'
- PRINT @cmd_map
- exec xp_cmdshell @cmd_map
- --关闭xp_cmdshell扩展存储过程、高级设置
- EXEC sp_configure 'xp_cmdshell', 0
- RECONFIGURE
- EXEC sp_configure 'show advanced options', 0
- RECONFIGURE
转载于:https://blog.51cto.com/dengweihua1/965528