SqlServer自动备份、自动压缩、自动删除旧备份

准备工具:

SqlServer2008

WinRar

1.给SqlServer设置维护计划定时备份

这个操作比较简单,按向导新增维护计划即可。

2.自动压缩脚本

c:\Progra~2\WinRar\winRar.exe a D:\bak\database_buckup_%date:~0,4%_%date:~5,2%_%date:~8,2% d:\bak\database_*%date:~0,4%_%date:~5,2%_%date:~8,2%_*.bak 

备份文件的格式是:database_backup_2015_05_15_010001_5555338.bak,

压缩文件格式是:data_2015_06_15.rar这种样式。

3.自动删除旧的备份

设置一个计划任务,在压缩前把老的备份删除。这里通过bat脚本调用vbs脚本,因为vbs脚本相对好写一点。

autoDeleteOld.bat

cscript d:/bak/autoDeleteOldBak.vbs

autoDeleteOldBak.vbs

const reMainCount = 1           ‘保留几day

Dim fso,dc,file,files,folder,subfolders,subfolder
set fso=createobject("Scripting.FileSystemObject")
set folder=fso.getfolder("D:\bak")
Dim today
today=Now
for each tempFile in folder.files
    dim arr
    arr=Split( tempFile,"_backup_")
    if UBound(arr)>0 then
        dim tempDate,diff
        tempDate=Cdate( Replace( Left(arr(1),10),"_","-"))
        diff= DateDiff("d",tempDate,today)
        if (diff>reMainCount) then
            fso.deleteFile(tempFile),true
        end if
    end if
next
set fso=nothing

如果另外有ftp服务器,可以压缩文件后,远程同步到另一台服务器上。

时间: 2024-08-01 02:21:22

SqlServer自动备份、自动压缩、自动删除旧备份的相关文章

Oracle利用exp自动备份及删除旧备份

介于本人能力有限 此方法仅适用于数据量比较小的 数据量巨大的另寻他法 步骤一:编写bat批处理文件 echo 正在删除7天前的备分文件和日志... forfiles /p "D:\Backup\OracleAutoBackup" /m zywl_*.dmp /d -7 /c "cmd /c del @path" forfiles /p "D:\Backup\OracleAutoBackup" /m zywl_*.log /d -7 /c &quo

windows下bat批处理实现数据库备份、压缩、删除

@echo off rem 删除7天前的数据库备份 cd D:\db_bak\qd_web_project\dumpforfiles /m *.sql.gz /d -7 /c "cmd /c del @file /f" cd D:\db_bak\ios_web_project\dumpforfiles /m *.sql.gz /d -7 /c "cmd /c del @file /f" cd D:\db_bak\game_db_all\allforfiles /m

通过RMAN联机全库备份,包括控制文件,归档日志文件,备份成功后,删除已备份的归档日志。

RMAN> backup as backupset full database format '/u01/app/backup/db_%U.rmn' include current controlfile plus archivelog delete all input; Starting backup at 10-OCT-16 current log archived using target database control file instead of recovery catalog

[Irving] SQL 2005/SQL 2008 备份数据库并自动删除N天前备份的脚本

以下为SQL脚本,本人以执行计划来调用,所以改成了执行命令,大家可根据自己需要改为存储过程使用 DECLARE @bak_path nvarchar(4000)='E:\MsBackUp\SqlAutoBackup\' --备份路径; DECLARE @baktype int = 0 --备份类型为全备,1为差异备,2为日志备份 DECLARE @type int = 3 --设置需要备份的库,0为全部库,1为系统库,2为全部用户库,3为指定库,4为排除指定库; DECLARE @dbnames

MySQL:亲测备份策略实例(线上真实备份案例)

小生博客:http://xsboke.blog.51cto.com 如果有疑问,请点击此处,然后发表评论交流,作者会及时回复(也可以直接在当前文章评论). -------谢谢您的参考,如有疑问,欢迎交流 是否为线上库的备份而烦恼过,这里提供一个完整的备份从属数据库的备份方案,亲测可用 说明: 备份从库,按周计,每周进行一次全备 每周一的早上六点进行全备,其他时间备份中继日志 在从库上启用rsync服务,用于异地备份 在本地服务器使用rsync命令定时同步数据库的备份 此备份可用于为Master添

SQL SERVER 设置自动备份和删除旧的数据库文件

打开SQL SERVER MANAGEMENT STUDIO,启动SQL SERVER代理服务(注意在“控制面板-管理工具-服务”中设置SQL SERVER AGENT的启动类型为自动).启动后点击“作业-新建作业”,弹出一个作业属性的窗口,在“常规”栏目里可以先给作业命名,假设为“备份数据”. 一.备份数据的第一个步骤--“备份当日数据” 在“步骤”栏目里新建一个步骤名为“备份当日数据”,类型为“T-SQL”,数据库选择你要操作的数据库(假设为“TESTDB”),命令窗口里填入备份的SQL语句

MySQL 5.7.10 自动备份、自动清理旧备份集

http://blog.csdn.net/mchdba/article/details/51527081 MySQL版本是5.7.10-log社区版本,需要进行备份,但是备份时间长了后,磁盘不够用,所以需要对指定旧的备份集合进行清理工作. 1,mysqldump备份脚本 备份脚本为,里面有几个需要注意的参数: (1)--master-data=2 :这个参数可以在搭建从库的时候,记录当前备份的复制点信息. (2)--extended-insert=false:这个在形成sql语句的时候,一条记录

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

    我们的系统维护的过程中肯定需要对数据库进行定期的备份,但是如果定时手工备份的话,不但浪费时间,也不能保证每次都可以按时备份,所以自动备份成为了我们的不二选择,但是定时备份需要定期清理备份文件,不然会因为磁盘空间不足导致备份失败,失去备份的准确性,下面我们就一步步来看一下如果自动备份并删除过期备份数据. 1.打开SQL SERVER 2008 R2,连上数据库,右键选择[管理]-[维护计划]-[维护计划向导]. 2. 在名称中为维护计划取一个通俗易懂的名字,例如"EveryDayBak&q

MySQL 5.7.10 自动备份、自动清理旧备份集(转)

1,mysqldump备份脚本 备份脚本为,里面有几个需要注意的参数: (1)--master-data=2 :这个参数可以在搭建从库的时候,记录当前备份的复制点信息. (2)--extended-insert=false:这个在形成sql语句的时候,一条记录一个insert语句 (3)--single-transaction:来保证备份的一致性,实际上它的工作原理是设定本次会话的隔离级别为:REPEATABLE READ,以确保本次会话(dump)时,不会看到其他会话已经提交了的数据. 备份脚