Пример сценария sql для архивации и передачи файла резервной копии базы данных

Я искал образец сценария sql для архивирования файла резервной копии базы данных (.bak) и передачи в удаленное место. Пожалуйста, поделитесь, если у вас есть это с вами.

3 ответа

Решение

Вы можете использовать xp_cmdshell для вызова команд для архивирования и копирования. В этом примере я использую командную строку winzip (для архивирования / разархивирования) и xcopy для передачи файлов.

EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzzip C:\Database.bak.zip C:\Database.bak';
EXEC master..xp_cmdshell 'C:\"Program Files"\WinZip\wzunzip -o "C:\Database.bak.zip" "C:\Database"';
EXEC master..xp_cmdshell 'xcopy "C:\Database.bak.zip" "\\networkshare\Backups" /Y'

xp_cmdshell - это один из способов, хотя он и не идеален, поскольку его включение делает сервер менее безопасным.

Мой проект с открытым исходным кодом, SQL Server Compressed Backup, делает то, что вы ищете, за один шаг:

msbp.exe backup "db(database=model)" "zip64" "local(path=\\server\share\path\model.full.bak.zip)"

Установка SQL Server Compressed Backup - это просто развертывание "xcopy" - устанавливать и удалять нечего, идеально, если вам нужно сделать это один раз.

Он использует zip64, поскольку стандартный формат zip ограничен 4 ГБ. Доступны альтернативные форматы сжатия: gzip и bzip2, которые не имеют ограничений.

Почему бы не использовать такие простые инструменты, как SqlBackupAndFtp? Они делают именно то, что вам нужно (sql backup + перемещение в удаленное местоположение) с простым интерфейсом, и вам не нужно писать никаких скриптов.

Другие вопросы по тегам