享下链接:http://blog.csdn.net/xieyufei/article/details/33770067
(注意这里主要说明怎么设置删除过期备份文件)

先说下sqlserver使用job删除过期备份文件总体思路:①备份数据库文件的时候命名要有规则,如:”PTM_WorkOrder_”+当前时间(年月日)+“_”+当前小时[强调一下:无论你命名规范是什么一定要带上时间]

②删除过期备份文件实质就是使用sql语句删除指定文件(这也是为什么备份文件命名要带上时间的原因)

接下来具体分享怎么删除过期备份文件:(1)这是job,我第一想法是修改job脚本更改更能,可惜水平有限(整体看不太懂,懵逼),在此提供一个简单的方式:点击该你要修改的job,查看properties

命令里就是job自动执行的sql语句(总体结构清晰的多了,看着不舒服的话可以查看job脚本)。

命令内容如下:

DECLARE @bakFile varchar(200),@delFile varchar(200),@str varchar(200),@strtest varchar(200);

SET @bakFile='C:\Program Files\MicrosoftSQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\\Backup\\RRD_WORKORDER\PMT_WorkOrder_' + CONVERT(varchar(100), GETDATE(), 112) + +'_' + CAST(DATEPART(HOUR, GETDATE()) AS VARCHAR(2)) + '.bak';

BACKUP DATABASE [RRD_WORKORDER] TO  DISK = @bakFile WITH NOFORMAT, NOINIT,  NAME = N'RRD_WORKORDER-完整 数据库 备份', SKIP, NOREWIND, NOUNLOAD,  STATS = 10;

SET @delFile = 'C:\"Program Files"\"Microsoft SQL Server"\MSSQL10_50.MSSQLSERVER\MSSQL\\Backup\RRD_WORKORDER\PMT_WorkOrder_' + CONVERT(varchar(100), GETDATE()-3, 112) + +'_' + CAST(DATEPART(HOUR, GETDATE()) AS VARCHAR(2)) + '.bak';

set @str='del '+@delFile

exec master.dbo.xp_cmdshell @str

GO

  1. 备份的删除根据exec master.dbo.xp_cmdshell'del D:\test.txt'演变过来
  2. CONVERT(varchar(100), GETDATE()-3, 112)获取3天前的时间(不就过期咯)。
    在此遇到一个坑分享下就是要删除的备份文件路径里面含有空格,解决办法就是在空格两边加双引号””,如上。

sqlserver使用job删除过期备份文件的更多相关文章

  1. CMD批处理——forfiles命令使用,自动删除过期备份文件

    公司服务器用来备份数据的硬盘过段时间就会被备份文件占满,弄得我老是要登录到服务器去手工删除那些老的文件,有时忘记了就会导致硬盘空间不足而无法备份.因为只要保留最近几天的备份,如果可以做一个批处理让系统 ...

  2. SQL Server ->> 调用系统内建扩展存储过程"master.dbo.xp_delete_file"删除过期备份文件

    DECLARE @oldDate DATETIME SET @oldDate = GETDATE()-30 EXECUTE MASTER.dbo.xp_delete_file 0, N'D:\back ...

  3. SqlServer数据库同时备份到两台服务器上(并自动删除过期文件)

    数据库同时备份到两台服务器上(并自动删除过期文件) 举例 :(本地)服务器A: IP :192.168.1.1 (远程)服务器B: IP :192.168.1.2 数据库版本:SqlServer200 ...

  4. db2 删除过期的日志和备份文件(转)

    DB2 删除过期备份和日志 $ db2 list history archive log all forpayment2    ------列出归档日志 $ db2 list history back ...

  5. crontab定时任务打包备份文件并删除过期文件

    Crontab 示例,最后这里要写成shell脚本定时运行 30 17 * * * cp -rf /usr/local/tomcat9-jforum/tomcat/logs/catalina.out ...

  6. RMAN 命令-删除过期

    手动删除日志文件后的处理,不然rman备份会出错 rman target / crosscheck archivelog all; delete expried archivelog all; 删除所 ...

  7. SQL SERVER 2008 R2 自动备份并删除过期备份数据

        我们的系统维护的过程中肯定需要对数据库进行定期的备份,但是如果定时手工备份的话,不但浪费时间,也不能保证每次都可以按时备份,所以自动备份成为了我们的不二选择,但是定时备份需要定期清理备份文件, ...

  8. Windows 下 MySQL 简单定时自动备份、删除过期备份

    Windows 下 MySQL 简单定时自动备份.删除过期备份 MySQL Workbench 客户端虽然好用,但并不提供自动备份功能.手工备份,确实繁琐. 新建一个 数据库备份文件存放目录,本例为D ...

  9. Linux下自动删除过期备份和自动异地备份

    每天自动删除过期备份 首先编写一个简单的Shell脚本DeleteExpireBackup.sh: #!/bin/bash # 修改需要删除的路径 location="/database/b ...

随机推荐

  1. PHP常用的三种设计模式

    本文为大家介绍常用的三种php设计模式:单例模式.工厂模式.观察者模式,有需要的朋友可以参考下. 一.首先来看,单例模式 所谓单例模式,就是确保某个类只有一个实例,而且自行实例化并向整个系统提供这个实 ...

  2. js:通过正则匹配获取页面的url中的参数

    简介:获取页面参数 原生js: //通过正则匹配获取当前页面的url中的参数 function getUrlParam(name){ var reg = new RegExp("(^|&am ...

  3. 透视I/O多路复用

    透视I/O多路复用 我写的不是select这些函数的教学,需要了解的请自行Google或者去man,这些是帮助我理解函数的封装之下的道理. 需要回答的问题 I/O准备好了指什么?什么叫I/O已经可读/ ...

  4. php流程管理

    流程控制即某个人发起一个流程,通过一层一层审核,通过后,完成整个流程,若有一层审核未通过,中断整个流程.即结束! 比如请假流程: 某一员工发起一个请假流程,那么这个流程的节点人员即他的上级,上上级,上 ...

  5. 战斗逻辑 - demo

    创建战斗依赖的数据结构 /** * 角色属性 */ var a_data = { _id: 101, attr: { // 角色战斗属性 }, skill: [],// 技能数组 isAtk: fal ...

  6. ArrayList 遍历

    1.迭代器遍历 package sourceCode.ArrayList; import java.util.ArrayList; import java.util.Iterator; import ...

  7. cmd中关闭windows2008错误弹窗

    net stop sharedaccess reg add HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Windows /v ErrorMode / ...

  8. [进程管理]Linux进程状态解析之T、Z、X

             Linux进程状态:T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态.          向进程发送一个SIGSTOP信号,它就会因响应该信号而进入 ...

  9. 《JavaScript权威指南》学习——js闭包

    序:闭包这个玩意啊~在很多没有代码块的语言中都会出现,已经成为大多程序员入门的一道坎,闭包让很多程序员觉得晦涩(事实上百度一下这个名词,真的说的很晦涩啊亲==|||),我第一次知道闭包这个名词是从&l ...

  10. VMware Ubuntu 安装

    最近对Linux系统有兴趣,本想装个双系统,考虑自己是以Windows为主,所以装了个虚拟机 VMware Workstation 12 Pro 版Ubuntu镜源文件下载地址:https://www ...