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

StackOverflow https://stackoverflow.com/questions/128166

Вопрос

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

Это было полезно?

Решение

Вы можете использовать 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, делает то, что вы ищете, за один шаг:

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

Установка сжатого резервного копирования SQL Server представляет собой просто развертывание «xcopy»: не нужно ничего устанавливать/удалять, идеально, если вам нужно сделать это только один раз.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top