DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ':' , '.')
set @strPath = 'D:"bak"' + @strPath + '.bak'
BACKUP DATABASE [databasename] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
如:DECLARE @strPath NVARCHAR(200)
set @strPath = convert(NVARCHAR(19),getdate(),120)
set @strPath = REPLACE(@strPath, ':' , '.')
set @strPath = 'C:/bak/JJ_sp_' + @strPath + '.bak'
BACKUP DATABASE [JJ_sp] TO DISK = @strPath WITH NOINIT , NOUNLOAD , NOSKIP , STATS = 10, NOFORMAT
***************************************下面为远程自动备份***********************
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;--打开xp_cmdshell
exec master..xp_cmdshell --使用xp_cmdshell
'net use h: \\23.170.201.68\data_back$ "" /user:192.168.10.29\administrator' --net连接 ,asd为共享的文件夹,必须可修改。“” 是密码,administrator用户名
declare @a char(80)
select @a ='z:\JJ_sp_' + replace(replace(convert(varchar(19),getDate(),120),' ','-'),':','-') + '.bak' --根据时间定义文件备份名称
backup database JJ_sp to disk= @a --JJ_sp 为需要备份的数据库
exec master..xp_cmdshell 'net use z: /delete' --删除net连接
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;--关闭xp_cmdshell .只是将上面的后面的那个"1"改成"0"就可以了
将上段代码COPY到新建步骤的代码中。即可
******************以下为备份后压缩、删除原文件、定期删除15天前的备份、本地与远程都备份****************
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;--打开xp_cmdshell
exec master..xp_cmdshell --使用xp_cmdshell
'net use h: \\23.170.201.68\data_back$ "" /user:23.170.201.68\administrator' --net连接 ,data_back$为隐藏共享的文件夹,必须可修改。“” 是密码,administrator用户名
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@datefile1 nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@rarfile1 nvarchar(100),
@rarfile2 nvarchar(100),
@delcmd nvarchar(100),
@delcmd1 nvarchar(100),
@delcmd2 nvarchar(100),
@copycmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='S:\databack\JJ_sp\' --备份文件夹
set @datefile='JJ_sp_'+replace(replace(replace(convert(varchar(16),getdate(),120),'-',''),' ','-'),':','') --按时间取得文件名称用于备份
set @datefile1='JJ_sp_'+replace(replace(replace(convert(varchar(16),getdate()-7,120),'-',''),' ','-'),':','') --按时间取得文件名称用于删除
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile='S:\databack\JJ_sp\'+@datefile+'.rar'
set @rarfile1='S:\databack\JJ_sp\'+@datefile1+'.rar' --删除7天前压缩路径 本地
set @rarfile2='H:\JJ_sp\'+@datefile1+'.rar' --删除7天前压缩路径 远程
BACKUP DataBASE JJ_sp TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'JJ_sp', NOSKIP , STATS = 10, NOFORMAT --备份数据库
set @rarcmd ='C:\Progra~1\WinRAR\WinRAR.exe a -o+ -m5 -ibck -ep '+@rarfile+' '+@bakfile --进行加密压缩
exec master..xp_cmdshell @rarcmd
set @delcmd = 'del '+@prefix+ '*.bak' --删除原始文件
exec master..xp_cmdshell @delcmd
set @copycmd='copy '+@rarfile+' '+ 'h:\JJ_sp\' -- 设定备份路径
exec master..xp_cmdshell @copycmd --copy压缩文件进行备份
set @delcmd1 = 'del '+@rarfile1+'' --删除7天前的备份文件 本地
exec master..xp_cmdshell @delcmd1
set @delcmd2 = 'del '+@rarfile2+'' --删除7天前的备份文件 远程
exec master..xp_cmdshell @delcmd2
exec master..xp_cmdshell 'net use h: /delete' --删除net连接
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 0;RECONFIGURE;--关闭xp_cmdshell .只是将上面的后面的那个"1"改成"0"就可以了
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/16436858/viewspace-617166/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/16436858/viewspace-617166/