Пример сценария sql для архивации и передачи файла резервной копии базы данных - PullRequest
5 голосов
/ 24 сентября 2008

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

Ответы [ 3 ]

5 голосов
/ 24 сентября 2008

Вы можете использовать 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'
3 голосов
/ 24 ноября 2009

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, которые не имеют ограничений.

2 голосов
/ 09 октября 2012

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

...