开发者社区> 潇湘隐者> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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

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

相关文章
《零基础》MySQL DELETE 语句(十五)
法 以下是 SQL DELETE 语句从 MySQL 数据表中删除数据的通用语法: DELETE FROM table_name [WHERE Clause]
45 0
OUTPUT 在insnert delete update 的神奇功效
原文:OUTPUT 在insnert delete update 的神奇功效 Inserted   deleted  个人理解 应该是两个 临时表   分别存储 变动后的数据集  和  变动前的数据集使用例子: 1.
774 0
一条delete语句的调优
今天刚上上班,就接到客户的邮件,说生产环境中执行某一条delete sql语句的时间超过了3个小时。最后客户无奈取消了这次数据清理,准备今天在申请时间重做。所以希望我在下午之前能够调优一下sql语句。
612 0
OAF_EO系列6 - Delete详解和实现(案例)
2014-06-14 Created By BaoXinjian 一、摘要 在OAF中,似乎不是根据你光标所在的行来删除对应的记录,而是根据记录指针来删除,而这个指针又与你的光标位置无关 需要用代码来精确的定位.
1335 0
Delete与truncate的区别
        Delete table_name 删除"表格记录"会把操作记录在日志中,可以通过事务回滚来恢复删除的数据。         truncate table table_name删除"表格记录"不可恢复 。        delete 语句是数据库操作语言(dml),这个操作会放到rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执
906 0
Delete与truncate的区别
        Delete table_name 删除"表格记录"会把操作记录在日志中,可以通过事务回滚来恢复删除的数据。         truncate table table_name删除"表格记录"不可恢复 。        delete 语句是数据库操作语言(dml),这个操作会放到rollback segement 中,事务提交之后才生效;如果有相应的 trigger,执
921 0
ASP.NET开源MVC框架Vici MVC(二)Controllers和templates基础
ASP.NET开源MVC框架Vici MVC 最大的特点是支持ASP.NET2.0  iis不需要额外的设置 官方实例下载地址http://viciproject.com/wiki/Projects/Mvc/UserGuide/Routing   Vici的Controllers和templates和ASP.
803 0
+关注
潇湘隐者
网名潇湘隐者/潇湘剑客、英文名Kerry,兴趣广泛,广泛涉猎,个性随意,不善言辞。执意做一名会写代码的DBA,混迹于IT行业
777
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载