MSSQL数据库备份并调用WINRAR压缩

CREATE PROCEDURE BACKUPDB

    @DATABASE VARCHAR(128)='dbname'   -- 要备份的数据库

,@BACKUPPATH VARCHAR(256)='E:/DbBack/'   -- 备份目录

,@WINRARPATH VARCHAR(256)='E:/tools/WinRAR/'               -- winrar路径,用于压缩文件

AS

BEGIN

DECLARE @DATE VARCHAR(8);

DECLARE @CMD VARCHAR(256);

DECLARE @BACKFILE VARCHAR(256);

DECLARE @BACKUPNAME VARCHAR(128);

 

-- 备份名称

SET @BACKUPNAME=@DATABASE +'的完整备份';

 

--备份文件

SET @BACKFILE=@BACKUPPATH + lower(@DATABASE) + CONVERT(CHAR(8),GETDATE(),112) + N'.bak';

 

BACKUP DATABASE @DATABASE TO DISK=@BACKFILE WITH FORMAT,NAME = @BACKUPNAME;

 

--开启XP_CMDSHELL

EXEC SP_CONFIGURE 'SHOW ADVANCED OPTIONS', 1;RECONFIGURE;EXEC SP_CONFIGURE 'XP_CMDSHELL', 1;RECONFIGURE;

--压缩

--a 添加要压缩的文件

--ep 压缩文件夹不包含完整路径

--df 删除被压缩源文件

--inul 不显示消息

SET @CMD=@winrarpath+N'rar a -ep -df -inul ' + @BACKFILE +'.rar' +' '+@BACKFILE;

EXEC MASTER.DBO.XP_CMDSHELL @CMD;

 

--删除备份文件

SET @CMD='DEL '+@BACKFILE;

EXEC MASTER.DBO.XP_CMDSHELL @CMD;

 

--关闭XP_CMDSHELL

EXEC SP_CONFIGURE 'SHOW ADVANCED OPTIONS', 1;RECONFIGURE;EXEC SP_CONFIGURE 'XP_CMDSHELL', 0;RECONFIGURE;

 

END;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值