Есть ли хороший способ заставить SQL Server 2005 выполнять еженощное резервное копирование, которое автоматически архивируется с сохранением только последних n резервных копий?
Я знаю, что агент может выполнять еженощное резервное копирование, но я думаю, что сложной частью этого вопроса будет заархивирование и удаление очень старых резервных копий.
Ура!
После резервного копирования 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 воскресенья назад.
я написал automssqlbackup который создает резервные копии, вращает, архивирует и отправляет электронную почту. Powershell и бесплатно.
Есть программное обеспечение: SqlBackupAndFTP. Есть бесплатная и «Премиум» версия.
Бесплатная версия включает опцию «Резервное копирование по расписанию, Zip». Вот обзор Блог SQL Authority.com, в котором также объясняется, как использовать инструмент.
В качестве альтернативы вы можете вызвать zip из командной строки (winzip /wzzip) из расширенной хранимой процедуры SQL Server xp_cmdshell. Вы могли бы использовать Робокопия полученные файлы в безопасное место.