--exec master..xp_cmdshell 'net use Q: \\共享文件夹 "密码" /user:IP用户名' --映射网络硬盘
--exec master..xp_cmdshell 'net use Q: /delete' --删除网络硬盘
第二步 :写存储过程
CREATE PROCEDURE [nikko_backup] AS
declare
@prefix nvarchar(100),
@datefile nvarchar(100),
@datefile1 nvarchar(100),
@bakfile nvarchar(100),
@rarfile nvarchar(100),
@rarfile1 nvarchar(100),
@delcmd nvarchar(100),
@delcmd1 nvarchar(100),
@copycmd nvarchar(100),
@rarcmd nvarchar(150)
set @prefix='D:\BACKUP\' --备份文件夹
set @datefile='aa_db_'+replace(replace(replace(convert(varchar(16),getdate(),120),'-',''),' ',''),':','') --按时间取得文件名称用于备份
set @datefile1='aa_db_'+replace(replace(replace(convert(varchar(16),getdate()-3,120),'-',''),' ',''),':','') --按时间取得文件名称用于删除
set @bakfile=@prefix+@datefile+'.bak'
set @rarfile='D:\aa_rar\'+@datefile+'.rar'
set @rarfile1='D:\aa_rar\'+@datefile1+'.rar' --删除3天前压缩路径
BACKUP DataBASE aa TO DISK = @bakfile WITH INIT , NOUNLOAD , NAME = N'aa', NOSKIP , STATS = 10, NOFORMAT --备份数据库
set @rarcmd ='C:\Progra~1\WinRAR\WinRAR.exe a -k -r -s -ibck '+@rarfile+' '+@bakfile --进行加密压缩
exec master..xp_cmdshell @rarcmd
set @delcmd = 'del '+@prefix+ '*.bak' --删除原始文件
exec master..xp_cmdshell @delcmd
set @copycmd='copy '+@rarfile+' '+ 'Q:\aa_bak_rar\' -- 设定备份路径
exec master..xp_cmdshell @copycmd --copy压缩文件进行备份
set @delcmd1 = 'del '+@rarfile1+'' --删除备份文件
exec master..xp_cmdshell @delcmd1
GO
注:以上可以自动备份SQL2000 数据库同时还可以进行压缩,转移到网络硬盘,同时删除3天前的本地备份,实现通过SQL自动备份。
第三步: 设定作业进行自动备份(通过调度)
以上就可以完全通过SQL实现自动备份
回复Comments
作者:
{commentrecontent}