Após o backup do SQL, executamos outra tarefa para executar um arquivo em lote para compactar os arquivos e copiá-los em um NAS. Nós mantemos os últimos 3 backups - o script básico é parecido com:
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_backupDaysAgo\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
(Eu editei o script para mostrar apenas 1 banco de dados). No final do script, chamamos um script Python para enviar um email que nos informa o tamanho dos arquivos de backup e a data em que foram criados. Você poderia facilmente usar um script do WSH. Eu acho que a instrução "if errorlevel ..." pode ter sido adicionada porque o agente SQL nem sempre detecta se o arquivo em lote foi concluído ou não?
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
Um de nossos servidores usa o winrar em vez do zip para compactar os arquivos (ele tem um prompt de comando). Uma vez por mês, os backups da noite passada são copiados para um arquivo mantido por seis meses, mas você pode facilmente criar outro arquivo de lote para ser executado uma vez por semana para manter backups do último domingo, 2 de domingo e 3 de domingo.