解决方法
在sql备份之后,我们运行另一个任务来运行批处理文件以压缩文件并将它们复制到NAS上.我们保留最后3个备份 – 基本脚本看起来像:
d: cd \MSsql\BACKUP zip -rq d:\northwind northwind.BAK REM - do the local copy to the NAS move/y \\10.0.0.1\sql_backup\yesterday\northwind.zip \\10.0.0.1\sql_backup\2DaysAgo\northwind.zip move/y \\10.0.0.1\sql_backup\northwind.zip \\10.0.0.1\sql_backup\yesterday\northwind.zip copy northwind.zip \\10.0.0.1\sql_backup\northwind.zip
(我编辑了脚本只显示1个数据库).在脚本结束时,我们调用Python脚本发送一封电子邮件,告诉我们备份文件的大小和创建日期.您可以轻松使用WSH脚本.我认为可能添加了“if errorlevel …”指令,因为sql代理并不总是检测批处理文件是否完成?
if errorlevel 1 goto weakspace d:\scripts\send_email_nas_copy_success.py goto end weakspace: REM - error occured d:\scripts\send_email_nas_copy_fail.py end: exit
我们的一台服务器使用winrar而不是zip来压缩文件(它有一个命令提示符).昨晚一个月的备份被复制到一个保存六个月的存档中,但您可以轻松创建另一个批处理文件,每周运行一次,以维护上周日,2个星期日和3个星期日之前的备份.