1备份
代码实现备份,根据数据库名+时间作为备份名称
1.1 完整备份
DECLARE @dbname nVARCHAR(50)
DECLARE @fileName nVARCHAR(max)
SET @dbname='test'
set @fileName = 'D:\test\'+@dbname+convert(varchar(10),getdate(),112)+'.bak' --定义当前备份文件存放路径
backup database @dbname to disk=@fileName WITH INIT --完整备份
1.2 差异备份
DECLARE @dbname nVARCHAR(50)
DECLARE @fileName nVARCHAR(max)
SET @dbname='test' --数据库名称
set @fileName = 'D:\test\'+@dbname+convert(varchar(10),getdate(),112)+'.bak' --定义当前备份文件存放路径
backup database @dbname to disk=@fileName WITH INIT, DIFFERENTIAL --差异备份 DIFFERENTIAL 代表差异
1.3 事务日志备份
DECLARE @dbname nVARCHAR(50)
DECLARE @fileName nVARCHAR(max)
SET @dbname='test' --数据库名称
set @fileName = 'D:\HQBI\'+@dbname+convert(varchar(10),getdate(),112)+'.log' --定义当前备份文件存放路径
BACKUP LOG @dbname TO DISK=@fileName WITH INIT
2 删除备份
2.1 根据备份生成时间删除备份
DECLARE @oldDate DATETIME
SET @oldDate = GETDATE()
--SET
EXECUTE MASTER.dbo.xp_delete_file
0, --0: 备份文件,1: 维护计划文本报告
N'D:\test\', --文件路径
N'bak', --文件扩展名
@oldDate, --在此时间之前的文件一律删除
1 --删除子文件夹中的文件 1是删除子文件夹里面的数据,0是否
2.2 根据备份文件的名称删除备份
注意事项:使用xp_cmdshell时,需先打开show advanced options和xp_cmdshell,否则直接使用是无效的
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
EXEC sp_configure 'xp_cmdshell', 1
RECONFIGURE
declare @sql varchar(500),@path VARCHAR(100),@filename VARCHAR(100)
SELECT @path='D:\test\' --路径
SELECT @filename='test'+ltrim(rtrim(convert(char(10),getdate()-1,112)))+'.bak' --文件名,
select @sql='del '+@path+@filename
print @sql
exec master..xp_cmdshell @sql
go
EXEC sp_configure 'xp_cmdshell', 0
RECONFIGURE
参考资料:1、用SQL作业实现删除过期文件_我想我是海 冬天的大海 心情随风轻摆-CSDN博客
2、https://blog.csdn.net/iteye_19838/article/details/82671265?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_paycolumn_v2&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7Edefault-1.pc_relevant_paycolumn_v2&utm_relevant_index=1