开发者社区> 潇湘隐者> 正文

delete_old_backup.bat

简介:
+关注继续查看

  在前面forfiles命令批量删除N天前文件 这篇文章里面讲述了如何在SQL Server 2000中使用forfile删除N天前备份文件,但是现在又有新需求:

  需求描述:通过数据库维护计划将备份生成在本地磁盘M(M盘位于单独的SAN存储,该SAN存储专门用于保留备份),完整备份保留2 天,事务日志备份保留2天,但是M:\DB_BACKUP\FULL_BACKUP目录下只能保留最新的一份完整备份,旧的备份必须移动到M: \DB_BACKUP\OLD_BACKUP,这样我就可以通过Symantec Backup Exec只将FULL_BAKCUP和LOG_BACKUP目录收上磁带。否则通过Symantec Backup Exec将备份收上磁带时,将出现冗余。一来需要消耗更多的磁带,最麻烦的是因为SAN存储和磁带机位于不同地域的机房,虽然通过1G的光纤连接,但是由 于我们磁带机只有两个Drive,只能并行跑两个作业,所以必须减少冗余,防止作业被滞留到白天,影响网络带宽,所以必须修改手头几台SQL Server 2000的备份策略,修改delete_old_backup.bat命令

            M:\DB_BACKUP\FULL_BACKUP

            M:\DB_BACKUP\LOG_BACKUP

            M:\DB_BACKUP\LOG_BACKUP

image

 

 

delete_old_backup.bat 脚本如下所示:

echo  --**************************************************************-- >>delete_old_backup.log
 
echo  --Delete the backup log start at %Date% - %time% -->>delete_old_backup.log
 
rem Keep the backup log days definition.
 
set LogKeepDays=2
 
rem delete the old backup log files LogKeepDays ago.
 
set LogPath=M:\DB_BACKUP\
 
forfiles -p%LogPath% -m*.txt -d-%LogKeepDays% -c"cmd /c del /q @FILE" >> delete_old_backup.log
 
echo Delete the backup log End at %Date% - %time% >>delete_old_backup.log
 
 
 
echo --Delete the folder old_bakcup full backup start at %Date% - %time% -- >>delete_old_backup.log
 
set OldBackupPath=M:\DB_BACKUP\OLD_BACKUP
 
set OldBkKeepDays=1
 
forfiles -p%OldBackupPath% -m*.bak -d-%OldBkKeepDays% -c"cmd /c del /q @FILE" >> delete_old_backup.log
 
echo --Delete the folder old_bakcup full backup end at %Date% - %time% -->>delete_old_backup.log
 
 
 
echo Move the full backup start at %Date% - %time% >>delete_old_backup.log
 
set FullBkKeepDays=1
 
set FullBackupPath=M:\DB_BACKUP\FULL_BACKUP
 
forfiles -p%FullBackupPath% -m*.bak -d-%FullBkKeepDays% -c"cmd /c move @FILE M:\DB_BACKUP\OLD_BACKUP" >> delete_old_backup.log
 
echo Move the full backup End at %Date% - %time% >>delete_old_backup.log
 
 
echo Delete the log backup start at %Date% - %time% >>delete_old_backup.log
 
set LogBackupPath=M:\DB_BACKUP\LOG_BACKUP
 
set LogBkKeepDays=2
 
forfiles -p%LogBackupPath% -m*.TRN -d-%LogBkKeepDays% -c"cmd /c del /q @FILE" >> delete_old_backup.log
 
 
echo Delete the log backup Stop at %Date% - %time% >>delete_old_backup.log
 
echo  --****************************************-- >>delete_old_backup.log

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
如何设置阿里云服务器安全组?阿里云安全组规则详细解说
阿里云安全组设置详细图文教程(收藏起来) 阿里云服务器安全组设置规则分享,阿里云服务器安全组如何放行端口设置教程。阿里云会要求客户设置安全组,如果不设置,阿里云会指定默认的安全组。那么,这个安全组是什么呢?顾名思义,就是为了服务器安全设置的。安全组其实就是一个虚拟的防火墙,可以让用户从端口、IP的维度来筛选对应服务器的访问者,从而形成一个云上的安全域。
20983 0
阿里云服务器如何登录?阿里云服务器的三种登录方法
购买阿里云ECS云服务器后如何登录?场景不同,阿里云优惠总结大概有三种登录方式: 登录到ECS云服务器控制台 在ECS云服务器控制台用户可以更改密码、更换系.
30376 0
阿里云服务器安全组设置内网互通的方法
虽然0.0.0.0/0使用非常方便,但是发现很多同学使用它来做内网互通,这是有安全风险的,实例有可能会在经典网络被内网IP访问到。下面介绍一下四种安全的内网互联设置方法。 购买前请先:领取阿里云幸运券,有很多优惠,可到下文中领取。
23130 0
阿里云服务器ECS登录用户名是什么?系统不同默认账号也不同
阿里云服务器Windows系统默认用户名administrator,Linux镜像服务器用户名root
17466 0
阿里云服务器端口号设置
阿里云服务器初级使用者可能面临的问题之一. 使用tomcat或者其他服务器软件设置端口号后,比如 一些不是默认的, mysql的 3306, mssql的1433,有时候打不开网页, 原因是没有在ecs安全组去设置这个端口号. 解决: 点击ecs下网络和安全下的安全组 在弹出的安全组中,如果没有就新建安全组,然后点击配置规则 最后如上图点击添加...或快速创建.   have fun!  将编程看作是一门艺术,而不单单是个技术。
21330 0
腾讯云服务器 设置ngxin + fastdfs +tomcat 开机自启动
在tomcat中新建一个可以启动的 .sh 脚本文件 /usr/local/tomcat7/bin/ export JAVA_HOME=/usr/local/java/jdk7 export PATH=$JAVA_HOME/bin/:$PATH export CLASSPATH=.
14929 0
阿里云服务器怎么设置密码?怎么停机?怎么重启服务器?
如果在创建实例时没有设置密码,或者密码丢失,您可以在控制台上重新设置实例的登录密码。本文仅描述如何在 ECS 管理控制台上修改实例登录密码。
23639 0
+关注
潇湘隐者
网名潇湘隐者/潇湘剑客、英文名Kerry,兴趣广泛,广泛涉猎,个性随意,不善言辞。执意做一名会写代码的DBA,混迹于IT行业
777
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载