Удаление старых резервных копий в Data Protection Manager 2007
Все мы знаем продукт для резервного копирования данных от Microsoft – System Center Data Protection Manager 2007. Его основная задача – выполнять резервные копии и складировать их на подключенные к серверу жесткие диски. В дальнейшем для долговременного хранения данные могут быть перенесены на ленты, но основным местом хранения является жесткий диск. При создании группы хранения DPM сам разбивает выделенный ему диск на разделы, в зависимости от предполагаемого им размера резервных копий и частоты копирования.
Естественно, при создании группы защиты DPM спрашивает, каков срок хранения резервных копий для восстановления – recovery points. И, само собой, по истечении этого срока он должен удалять старые копии, чтобы на их место сохранять новые.
Но мы столкнулись с ситуацией, что старые резервные копии DPM не удаляет. Они так и копятся на диске – и, рано или поздно, наступает время, когда места под новую резервную копию уже не хватает, и DPM вываливается с ошибкой «Recovery Point Volume threshold exceeded».
Для удаления устаревших резервных копий в DPM есть скрипт PruneShadowCopies.ps1, который можно запустить и вручную. Но – данный скрипт не работает. Выдает ошибку:
Index operation failed; the array index evaluated to null.
At C:\Program Files\Microsoft DPM\DPM\bin\pruneshadowcopies.ps1:205 char:18
+ $replicaList[$ <<<< inactiveDs.ReplicaPath] =
$inactiveDs.RecoveryRangeinDays
Index operation failed; the array index evaluated to null.
At C:\Program Files\Microsoft DPM\DPM\bin\pruneshadowcopies.ps1:206 char:23
+ $latestScDateList[$ <<<< inactiveDs.ReplicaPath] = new-object DateTime
Поэтому, собственно, резервные копии и не удаляются автоматически – DPM должен каждую полночь запускать этот скрипт по расписанию, а скрипт завершается с ошибкой.
В июне 2009 года Microsoft выпустила обновление 970267 для Data Protection Manager, среди прочих решающее и эту проблему. Скачать его можно здесь. Процесс установки таков:
- Скачиваем три файла, нужной нам платформы – в зависимости от того, 32- или 64-битная версия DPM установлена у нас. Кстати, ставится это обновление на Data Protection Manager 2007 Service Pack 1.
- Запускаем файл DataProtectionManager2007-KB970867.exe и производим обновление сервера. Чтобы не перезагружать сервер после обновления – убедимся, что DPM Administrator Console и DPM Management Shell не запущены.
- Если база данных SQL, в которой хранится конфигурационная информация DPM, находится не на том же сервере, где сам DPM – запускаем на этом сервере файл SqlPrep-KB970867.msp. Если мы ставили SQL Express вместе с DPM на ту же машину - обновление запускать не нужно.
- Если мы используем DPM Management Shell не на том же сервере, где сам DPM – запускаем на этом сервере файл DPMManagementShell2007-KB970867.msp. Если все находится на одном сервере – обновление запускать не нужно.
- Заходим в DPM Administrator Console, выбираем Management – Agents, и обновляем все клиентские агенты DPM до новой версии – версия DPM и агентов после этого обновления становится 2.0.8844.0. При обновлении нужно указать Manual restart – потому что на самом деле перезагружать серверы не нужно.
Все. После завершения обновления скрипт PruneShadowCopies.ps1 должен выполняться без ошибок.
Данный скрипт ничего не пишет на экран в процессе выполнения. Если мы все-таки хотим посмотреть диагностическую информацию – нужно перед запуском этого скрипта включить подробный режим отображения:
$VerbosePreference = "continue"
После этого запускать скрипт.