对大多数企业来讲,系统和数据的备份既重要,又简单,但又经常做不好,
鄙人的观点是,一者要重视备份,二者要有好的备份方案。这里给出我的常用脚本,简洁而好用,供大家参考,若有错误,望指点。QQ:361037838
新建备份目录,如F:\backup
新建备份脚本,如F:\script\backup.bat
在自动任务中创建任务,视情况定期执行此脚本,备份数据文件将会自动创建在脚本所在目录F:\backup,因为各种数据库的备份比较特殊,这里不详说,以SQL Server为例,假设已经由其SQL Server作业自动创建了BAK或TRN备份到F:\sqlback_weekly目录了,脚本内容如下,rem为注释符。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
@echo off rem ================================================= rem author Zhao Yanan rem date 2010/03/10 rem 注意事项: rem 此脚本添加到自动任务中运行一项后,末尾可添加“ >> backup.log 2>&1”(不加引号) rem 如果日志每次都较多,以致文件太大而不方便打开,可把>>改为>。 rem 脚本由超级管理员账户运行正常,请不要使用system用户,否则net use命令执行不会成功。 rem ================================================= echo ===================backupstart================== date /t time /t rem 进入备份目录 cd ..\backup rem 处理旧备份 del *.reg.1 del *.rar.1 rename *.reg *.reg.1 rename *.rar *.rar.1 rem 备份注册表 regedit -e regedit.reg rem 采用winrar备份 rem 参数说明: rem a,添加压缩文件,必须的参数 rem -ri0:1,其中0是线程优先级,0为默认,1最低,15最高,1是每压缩一个文件暂停1ms, rem 可降低CPU使用率,并可以减少磁盘读写错误的概率,但同时需要考虑备份总时长。 rem -v2000M,即每个分卷大小是2000*1000*1000Bytes rem -sv,分卷采用固实的方式,增加有部分分卷损坏时恢复数据的概率。 rem -r,包含子文件夹和文件 rem rar比winrar命令更多,使用方法基本一致。 rem -m5,采用最大压缩率,-m0,不压缩,默认是-m3 rem 更多帮助可参考winrar自带的帮助文件 rem 设置本地环境变量 setlocal path=“C:\Program Files\WinRAR” rar a -y script.rar f:\script\*.bat rar a -ri10:3 -y -r IIS_MetaBack.rar %SystemRoot%\System32\inetsrv\MetaBack rar a -ri10:3 -y -r serv–u.rar “d:\Program Files\Serv-U” rem 下面采用非固实分卷压缩备份大目录,可解决单个大文件FTP上传失败的问题 rem 因www数据超过10GB,为节省时长,没有采用-ri参数 rar a -ri10:3 -sv -v2000M -y -r mssql.rar “F:\sqlback_weekly” rar a -sv -v2000M -y -r -m2 www.rar e:\web rem 结束本地环境变量 endlocal rem 通过FTP上传到异地,下面的XXX代表异地FTP的IP,本脚本不采用此方法 rem ftp -i -s:ftp.ini XXX.XXX.XXX.XXX rem 参数说明 rem 这里ftp的参数,有时候需要加上-n rem 通过SMB协议和xcopy命令传输到异地,此方法需要本地和异地服务器之间能使用共享 net use t: /del /y net use t: \\XXX.XXX.XXX.XXX\sharedir “share?2010” /user:share xcopy /r /y /c *.rar t:\ xcopy /r /y /c BESR\*.sv2i t:\BESR xcopy /r /y /c BESR\*.v2i t:\BESR rem 因文件太大,下面是打包后直接保存到异地,因采用了分卷,所以异地目录需要有删除权限 “C:\Program Files\WinRAR\rar” a -sv -v2000M -y -r -m2 t:\ourweb.rar e:\web\ourweb net use t: /del /y time /t echo ===================backupdone================= exit |
下面是ftp.ini的内容:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# 带“#”标识的行是使用说明,真实环境中要删除 # 下面是用户名和密码 username password # 采用二进制模式,否则二进制文件传输后是不能用的。 bin put regedit.reg # 上传多个文件命令 mput *.rar lcd www # 事先在FTP上新建www目录 cd www put *.rar bye |
因为异地FTP的密码都放在这里了,肯定不安全,我的方法是,异地FTP目录设置为只写,拒绝其它所有权限,异地的备份当然也需要循环,可以在异地服务器上执行定期删除任务。或者改为由异地备份服务器定期获取备份。
考虑到企业有时候需要更久的备份,可以在其它目录里存放永久备份,而不会被自动任务删除。
发表回复