Автоматизация создания резервных копий в MS SQL Express Server

В версии Microsoft SQL Server 2005/2008/2008R2 Express Edition серверах нет стандартных средств создания резервных копий баз данных по расписанию. Восполнить этот пробел поможет простое решение

предлагаемое разработчиками CodePlex (их даже 2: одно основано на хранимых процедурах а другое —  отдельная утилита).

В статьях на сайте авторов (использование хранимых процедур,  отдельная утилита) описаны механизмы работы, ключи, настройки и требование к системе.

Версия с использованием хранимой процедуры уже была освещена ранее.

Мне больше понравилась реализация в виде отдельной утилиты ExpressMaint. Она поддерживает следующие операции:

  • Полная резервная копия базы данных
  • Дифференцированная копия базы данных
  • Поддержка журнал логов
  • Управление файлами копии базы данных
  • Проверки целостности базы данных
  • Переиндексация базы данных
  • Обновление статистики базы данных
  • Создание отчетов

Существуют разные версии утилиты для SQL Server 2005 Express и  SQL Server 2008 Express.

Простой пример реализации решения (Window XP):

1. Завести пользователя например: backup (пароль: backup007)

2. Завести тестовую базу: TEST (это только для проверки, если нет иных баз)

3. Создать следующие каталоги:

C:UTIL — для дополнительных утилит командной строки;
C:TMP — для временных файлов;
E:BACKUP
eports
 — папка для логов backup;
E:BACKUPackups — папка backup файлов;

4. Поместить файл ExpressMaint.exe в папку C:UTIL (для версий 2005 и 2008 — файлы разные)

5. Установить следующие параметры в системной процедуре «Назначенные задания«:

Выполнить: C:UTILExpressMaint.exe -S -D ALL_USER -T DB -R e:BACKUP
eports -RU WEEKS -RV 1 -B e:BACKUPackups -BU WEEKS -BV 1 -V -C

Рабочая папка: C:TMP

От имени: ackup

Назначить заданиеЕженедельно

Время начала: 

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

Примечание: В задании, описанном выше, выполняется недельный полный бэкап всех баз данных проводимый в заданное в системной процедуре Назначенные задания время. Старые записи бэкапа удаляются (т.е. записи храняться 7 дней). Решение устойчиво работает несколько лет на многих машинах для сохранения 1С баз данных.

3 Comments

  1. aspirator23

    Интересная информация. Думал что в Экспрессе резервирование встроен в штатный механизм.

    Reply
  2. LexSeIch

    (2) artbear,

    Полностью согласен. Но обычно к старому добавляется что-то новое… К SQL хранимым процедурам добавилась внешняя утилита. Добавил ссылку предшественника.

    Reply
  3. LexSeIch

    Обновленная ссылка на процедуру бэкапа для Express Edition MS SQL 2008 ExpressMaint — там же автор выложил исходный код процедуры.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *