/*******************完整备份作业*******************/
--完整备份,每周一次
USE Master
GO
declare @str varchar(100)
set @str='D:/DBtext/jgj/DBABak/FullBak'+replace(replace(replace(convert(varchar,getdate(),20),'-',''),' ',':','')+'.bak'
BACKUP DATABASE [demo] TO disK=@str
WITH RETAINDAYS=15,NOFORMAT,NOINIT,
NAME=N'Demo完整备份',SKIP,norEWIND,
NOUNLOAD,STATS=10
GO
/*******************差异备份作业*******************/
--截断日志
USE Master
GO
BACKUP LOG Demo WITH NO_LOG
GO
--收缩日志文件
USE Demo
GO
DBCC SHRINKFILE (N'Demo_log',0,TruncATEONLY)
GO
--差异备份,每天一次
USE Master
GO
declare @str varchar(100)
set @str='D:/DBtext/jgj/DBABak/DiffBak'+replace(replace(replace(convert(varchar,'')+'.diff'
BACKUP DATABASE [Demo] TO disK=@str
WITH DIFFERENTIAL,RETAINDAYS=8,
NAME=N'Demo差异备份',STATS=10
GO
/******************日志备份作业*******************/
--日志备份,每小时一次
USE Demo
GO
declare @str varchar(100)
set @str='D:/DBtext/jgj/DBABak/logbak'+replace(replace(replace(convert(varchar,'')+'.trn'
BACKUP LOG [Demo] TO disK=@str
WITH RETAINDAYS=3,
NAME=N'Demo日志备份',STATS=10
GO
--删除过期的备份文件,每天两次
declare @str varchar(100),@dir varchar(100),@fileName varchar(30)
set @dir='del D:/DBtext/jgj/DBABak/'
set @filename=left(replace(replace(replace(convert(varchar,getdate()-15,8)
set @str=@dir+'fullbak'+@filename+'*.bak'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,getdate()-8,8)
set @str=@dir+'diffbak'+@filename+'*.diff'
exec xp_cmdshell @str
set @filename=left(replace(replace(replace(convert(varchar,8)
set @str=@dir+'logbak'+@filename+'*.trn'
exec xp_cmdshell @str
PS:1、sql Server Management Studio Express数据库管理系统并没有维护计划,要在开发版或企业版才有。
2、需要在sql Server Configuration Manager中,开启服务sql Server Agent(实例名)。如果服务启动,在Management Studio中新建维护计划时,提示以下错误信息:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。