出于安全考虑,SQL数据库备份文件,很多时候需要本地备份完后,传输至远程服务器保留,下面脚本利用SQL代理作业,对多个数据库进行备份后传输至远程服务器:
--Backup(循环备份多个数据库)
Declare @str varchar(max)=''
select
@str=@str+'Backup Database '
+name+' to disk = ''E:\test\sqlbak\'
+name+'_'+replace(replace(replace(convert(nvarchar(16),getdate(),120),'-','_'),':','') , ' ','_')
+'.bak'' with compression,init;'
from sys.databases where name in ('dev','weekseo')
select @str ;
exec (@str);
EXEC xp_cmdshell 'ftp -s:E:\test\ftpconfig.txt 127.0.0.1'
--Del backupfile(删除过期的备份文件)
Declare @Date datetime
select @Date=GETDATE()-10
print @Date
EXECUTE master.dbo.xp_delete_file 0,N'E:\test\sqlbak',N'bak',@Date
注意:上面脚本,其中E:\test\ftpconfig.txt 是FTP的配置文件,包括用户名密码等信息,这里不做介绍,E:\test\sqlbak为数据库本地备份目录。另外127.0.0.1要调整成自己的远程服务器。
发表评论 取消回复