SQL Server 2008 - как заархивировать файлы резервных копий и перейти на удаленный сервер - PullRequest
6 голосов
/ 04 марта 2010

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

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

Полный процесс, который мне нужен:

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

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

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

Ответы [ 11 ]

4 голосов
/ 21 февраля 2013

Вы можете создавать резервные копии баз данных с помощью SQLBackupAndFTP программного обеспечения. Это простой инструмент пользовательского интерфейса с возможностью выполнять и планировать задания резервного копирования (полное, разностное и журнальное резервное копирование). Он просто сжимает резервные копии со встроенным архиватором или 7-zip и отправляет их в локальную папку, на диск NAS, FTP или в облако (Dropbox, Google Drive, Amazon S3). Также есть форум поддержки .

2 голосов
/ 04 марта 2010

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

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

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

2 голосов
/ 04 марта 2010

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

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

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

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

1 голос
/ 04 марта 2010

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

1 голос
/ 04 марта 2010

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

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

1 голос
/ 04 марта 2010

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

. Для роскошного варианта посмотрите Red Gate Backup , это делает этот процесс справедливымбезболезненный.

1 голос
/ 04 марта 2010

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

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

0 голосов
/ 20 июня 2019

Вы можете использовать Backup Assistant . Это будет решение.

Вам необходимо установить расписание для этой программы. (как каждый час). Затем вам необходимо настроить пути к файлам резервных копий и учетные данные ftp в Appsettings.json

{   "AppSettings": {
    "BackupPaths": [
      {
        "LocalPath": "C:\\Users\\Sinan\\Desktop\\FtpBackup\\TestDb",
        "RemotePath": "TestDb"
      },
      {
        "LocalPath": "C:\\Users\\Sinan\\Desktop\\FtpBackup\\TestHangFireDb",
        "RemotePath": "TestHangFireDb"
      },
      {
        "LocalPath": "C:\\Users\\Sinan\\Desktop\\FtpBackup\\TestLogDb",
        "RemotePath": "TestLogDb"
      }
    ],
    "BackupFileExtensions": [ ".bak" ],
    "DeleteFilesAfterSend": true,
    "ZipFilesBeforeSend": true,
    "DeleteZipFilesAfterSend": false,
    "WriteLog": true,
    "Providers": {
      "FtpServer": {
        "Enabled": true,
        "Host": "ftphost",
        "Port": "21",
        "Username": "ftpusername",
        "Password": "ftppassword"
      }
    }   } }
0 голосов
/ 08 апреля 2014

Архивирование файла после резервного копирования занимает значительное время. Программы резервного копирования, использующие интерфейс виртуальных устройств SQL Server, решают вашу задачу и сокращают общее время процесса. Попробуйте EMS SQL Backup , который также позволяет отправлять сжатые резервные копии в сетевые папки, FTP или в облака.

0 голосов
/ 28 января 2013

Попробуйте SQL Backup Master , который может архивировать резервные копии и перемещать их в сетевую (или локальную) папку. Также можно перемещать архивированные файлы резервных копий на FTP, Dropbox, Amazon S3 или Google Drive. Базовое издание бесплатно.

...