+7 (812) 325 84 00

+7 (499) 322 07 96

Блог системного интегратора

  • Архив

    «   Сентябрь 2020   »
    Пн Вт Ср Чт Пт Сб Вс
      1 2 3 4 5 6
    7 8 9 10 11 12 13
    14 15 16 17 18 19 20
    21 22 23 24 25 26 27
    28 29 30        

Бэкап Exchange 2007 под Windows Server 2008 R2 штатными средствами ОС

Недавно создавал небольшую организацию Exchange 2007 для одного из заказчиков. Сервер Exchange был всего один, он же являлся по совместительству одним из контроллеров домена AD. Операционная система - Windows 2008 Server R2 Standard. Exchange 2007, соответственно - SP3 (так как более ранние сборки Exchange 2007 на Windows Server 2008 R2 не работают).

Нормального программного обеспечения для резервного копирования (Symantec Backup Exec, Microsoft DPM и т.д), как обычно, не имелось, поэтому пришлось настраивать бэкап штатными средствами Windows; помимо бэкапа данных Exchange, хотелось также делать и копию System State.

Решение вышло до предела примитивное, но две особенности хотелось бы отметить.

1)
Windows Backup 2008 (см. http://technet.microsoft.com/en-us/library/cc770266(WS.10).aspx ) НЕ умеет бэкапить в сеть при выполнении операции Scheduled Backup (для планирования таких операций в Windows 2008 используется не Windows Task Scheduler, а собственный планировщик утилиты) - поддерживается только бэкап на локально подключенные (в том числе USB) диски. Это новшество (а также захват управления томом, используемым в качестве целевого устройства, и хранение полной резервной копии системы в VHD-формате) введено для оптимизации процесса создания полной
резервной копии и восстановления системы из нее, но в реальной жизни порядком мешает - достаточно посмотреть комментарии "простого народа" к статье по приведенной выше ссылке :|

Обойти данную проблему можно, "обернув" задание бэкапа в вызов из командной строки утилиты Wbadmin, которая имеет несколько иной набор конфигурационных параметров, и может бэкапить в сеть - ну почему нельзя было сделать того же в графической версии, почему? - и уже эту "обертку" запланировать на исполнение с помощью обычного Task Scheduler. А возможность передачи параметров из планировщика в командный файл позволяет организовать одновременное хранение нескольких резервных копий, которые пишутся по дням (нужно просто создать несколько заданий для разного времени, и передавать разные целевые каталоги в качестве параметра). Получается примерно следующее (копируем данные 6 раз в неделю, храним 2 копии с перезаписью каждый второй день):

В планировщике:
по Пн, Ср, Пт запускаем задание "C:\Admin\Scripts\E7KBackup.CMD 135 >> Backup.log"
а по Вт, Чт, Сб запускаем задание "C:\Admin\Scripts\E7KBackup.CMD 246 >> Backup.log"

E7KBackup.CMD - это и есть "обертка" для Wbadmin. Выглядит она так:

@Echo off
Echo "Begin Backup"
Echo "Date:"
date /T
Echo "Time:"
time /T
Echo "Copying to \\ISA\Backup\VSS\%1"
c:\windows\System32\wbadmin.exe start backup -backupTarget:\\BACKUPSERVER\Backup\VSS\%1 -include:E: -vssFull
Echo "Date:"
date /T
Echo "Time:"
time /T
Echo "Finished."


Значащая только одна строка (8-я), остальные введены для создания простого лога, который может отслеживать администратор. Базы данных и журналы транзакций группы хранения в данном случае лежат на диске E: ; параметр -vssFull предписывает полный бэкап VSS с обрезкой журналов транзакций по завершении операции копирования. "\\BACKUPSERVER\Backup\VSS\%1" (целевая папка копирования)разворачивается в

"\\BACKUPSERVER\Backup\VSS\135" и
"\\BACKUPSERVER\Backup\VSS\246" - это пути, по которым хранятся копии, создаваемые по четным и нечетным дням недели.

2)
Бэкап System State из Wbadmin вызывается синтаксисом wbadmin.exe start systemstatebackup, в который можно было бы включить (с помощью ключа -include:E: ) и БД Exchange. Однако на практике совместное (в одном задании) выполнение операций VSS для Exchange writer и многочисленных VSS-writer'ов системы приводило к следующей ошибке Error 9782 от источника MSExchangeIS:



Как ни странно, помогло разнесение бэкапов Exchange и System State по разным заданиям (с небольшим интервалом по времени) с помощью
аналогичной технологии. Обертка для бэкапа System State вышла такая:

@Echo off
Echo "Begin System State Backup"
Echo "Date:"
date /T
Echo "Time:"
time /T
Echo "Copying to \\ISA\Backup\VSS\SS\%1"
c:\windows\System32\wbadmin.exe start systemstatebackup -backupTarget:\\BACKUPSERVER\Backup\VSS\SS\%1 -quiet
Echo "Date:"
date /T
Echo "Time:"
time /T
Echo "Finished."


И последнее замечание: поскольку VSS-бэкап работает только для целого тома, приведенный выше скрипт бэкапа БД Exchange (E7KBackup.CMD) предполагает, что, кроме данных Exchange, на диске E: ничего нет (что и было так). В противном случае использование ключей "-include:E: -vssFull" будет засорять резервную копию посторонней информацией и, возможно, сильно увеличит ее размер.