SQL2000自动备份压缩删除数据库

本文介绍了一种在SQL Server中实现数据库备份的方法,并通过批处理脚本和WinRAR进行备份文件的自动压缩及旧备份的清理。该过程包括设置备份路径、执行备份命令、压缩备份文件并删除原文件。

create proc sp_backup
as
declare
@dbname varchar(20),
@cmd1 nvarchar(120),
@cmd2 varchar(120),
@cmd3 varchar(120),
@i int,
@filename varchar(80),
@path varchar(80)
set @dbname='TEST'--\\这是数据库名,使用时只需要把它改成你所要备份的数据库名即可,这个必须修改\\--
----删除当前日期前15-前10天内的数据库备份,可根需要自行修改----

set @i=10
while @i<15
begin 
set @cmd1  ='if exist E:\DATABACKUP\'+@dbname+convert(varchar(10),DATEADD(day,-@i,getdate()),112) +'*' +' del  '+'E:\DATABACKUP\'+@dbname+convert(varchar(10),DATEADD(day,-@i,getdate()),112) +'*'
exec master..xp_cmdshell @cmd1----删除10天之前的数据库备份   
set @i=@i+1
end
----备份数据库----

exec master..xp_cmdshell 'if not exist E:\DATABACKUP (md E:\DATABACKUP)'--如果E盘根目录没有DATABACKUP文件夹,则新建此文件夹
SELECT @filename=@dbname+replace(replace(replace(CONVERT(varchar(16), getdate(), 120 ),'-',''),' ','-'),':','') 
SET @path='E:\DATABACKUP\'+@filename
BACKUP DATABASE @dbname TO DISK=@path

----压缩数据库备份,删除原备份文件

set @cmd2='C:\PROGRA~1\WinRAR\winrar.exe a  -ibck E:\DATABACKUP\'+@filename+'.rar E:\DATABACKUP\'+@filename
exec master..xp_cmdshell @cmd2----压缩数据库
set @cmd3='DEL E:\DATABACKUP\'+@filename
exec master..xp_cmdshell @cmd3----删除原备份文件(只保留压缩包)


go

 

转载于:https://www.cnblogs.com/zhang9418hn/archive/2012/01/12/2320664.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值