2008 SQL Server - как архивировать файлы резервных копий и переместиться в удаленный сервер

У меня есть неверсия для предприятий SQL Server 2008. Я делаю ночные резервные копии, вручную архивирую файлы и затем вручную копирую в удаленный сервер.

Я должен автоматизировать это использование пакетные файлы. Копирование файлов с сервера на сервер легко, но как я автоматизирую архивирование резервного копирования сначала?

Полный процесс, в котором я нуждаюсь:

  1. Выполните резервное копирование ночью
  2. Архивируйте резервное копирование для сокращения размера (с уникальным именем файла zip)
  3. Переместите zip-файл в удаленный сервер, который является установкой как сетевым диском на сервере базы данных

Я признаюсь, что часть сжатия отбросила меня. Любой совет был бы очень одобрен.

Заранее спасибо.

7
задан marc_s 3 March 2010 в 22:22
поделиться

6 ответов

вы не указываете утилиту zip, которую используете. Их много, но я предпочитаю использовать Winzip, так как это основной инструмент для работы с zip. Winzip имеет интерфейс командной строки ( http://www.winzip.com/prodpagecl.htm ), который представляет собой бесплатное дополнение к winzip, которое можно вызвать из командной строки.

Другой альтернативой может быть использование cygwin и tar.gz через командную строку.

2
ответ дан 6 December 2019 в 15:21
поделиться

Если вы просто застряли на том, как сжать из пакетного скрипта:

  1. Установите 7-Zip
  2. Запустите из командной строки:
    "C:\Program Files\7-Zip\7z.exe" a -t7z MyBackups.7z [Files To Zip]

Чтобы получить уникальное имя файла, я обычно вставляю дату/время: yyyymmddhhMMss-backup.7z

2
ответ дан 6 December 2019 в 15:21
поделиться

Вы можете архивировать файлы из командной строки, например, с помощью RAR . Просто добавьте команды ZIP туда, куда вы делаете копирование. Если это в T-SQL, вы можете выполнить команду ZIP, используя xp_cmdshell .

Если вам нужен роскошный вариант, ознакомьтесь с Red Gate Backup , он делает этот процесс довольно безболезненным.

1
ответ дан 6 December 2019 в 15:21
поделиться

Поскольку у вас 2008, у вас установлен Powershell. Я бы посоветовал посмотреть на сценарий psh, выполняемый после успешного резервного копирования, для сжатия и копирования по сети. Скорее всего, это будет второй этап работы после резервного копирования.

Вы также можете пойти по старинке и написать командный файл для сжатия и копирования. Затем вызовите это как шаг задания cmdshell, снова после задания / шага резервного копирования.

1
ответ дан 6 December 2019 в 15:21
поделиться

если вы программист, вы можете сделать приложение, которое получит резервную копию вашей базы данных от SMO и заархивирует этот файл в .gz файл с помощью доступных библиотек.

1
ответ дан 6 December 2019 в 15:21
поделиться

Вы можете (и должны!) определенно исследовать планы обслуживания SQL Server планы обслуживания.

Они позволяют автоматизировать такие вещи, как

  • проверка согласованности базы данных
  • восстановление индексов по мере необходимости
  • резервное копирование базы данных и журналов (обязательно используйте сжатие резервных копий SQL Server 2008!)

Я не уверен, что они имеют встроенную поддержку для архивирования и копирования на удаленный сервер, но вы определенно можете автоматизировать резервное копирование с помощью плана обслуживания, а остальное - с помощью командного файла.

3
ответ дан 6 December 2019 в 15:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: