数据库备份和删除

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值