Как удалить резервные копии из Windows Server Backup

Обновлено 10.12.2019

Windows Server Backup logoДобрый день! Уважаемые читатели и гости одного из крупнейших компьютерных блогов Pyatilistnik.org. В прошлый раз мы с вами научились настраивать сеть в Windows Server 2019 и даже протестировали на ней NIC Teaming. Двигаемся дальше и сегодня я бы хотел перевести ваш вектор изучения в сторону резервного копирования и оптимизации этого процесса. Я хочу вас научить производить удаление резервных копий (Shadow Copy), которые делает служба Архивации данных Windows Server.

В чем суть проблемы

У вас может быть установлена роль "служба Архивации данных Windows Server (Windows Server BackUP)", вы настроили задание по расписанию и все идет штатно. В какой-то момент вы сталкиваетесь с проблемой, что происходит заполнение жесткого диска резервного копирования Windows Server, роль должна видеть это и в случае нехватки пространства производить перезапись самой старой версии, по ряду причин это можете не произойти. Вторая ситуация, что у вас на диске можете быть слишком много точек резервного копирования и вы не хотели бы весь диск отдавать под них и желаете их сократить до нужного вам количества. Ниже я хочу вам показать, как вы можете все это задать явным образом.

Как удалить резервные копии Windows Server 2019 через командную строку или PowerShell

К сожалению в графическом интерфейсе у вас нет возможности явным образом задать, сколько точек восстановления должен хранить Windows Backup Server, по крайней мере в случае с состоянием системы. Но у нас все еще есть замечательная утилита командной строки wbadmin.

И так у меня есть диск E:\ на него каждый день служба архивации Windows Server 2019 делает резервную копию состояния системы, я устал получать от системы мониторинга оповещения, что на данном диске свободного пространства менее 5%, так как сколько службе Backup не дай, она все скушает и решил подрезать ее. Первое, что я хотел понять сколько точек резервного копирования у меня есть, посмотреть это можно двумя методами:

  • Через утилиту vssadmin
  • Через командлет Get-WBSummary

Получаем список резервных копий через Get-WBSummary

Get-WBSummary - это командлет получает историю операций резервного копирования на компьютере. Эта информация включает следующую запланированную резервную копию, сведения о последней резервной копии и сведения о последней успешной резервной копии. Вы можете использовать этот командлет для наблюдения за резервными копиями и расписанием резервного копирования на компьютере. Чтобы использовать этот командлет, вы должны быть членом группы "Администраторы" или "Операторы архива". (Подробнее на https://docs.microsoft.com/en-us/powershell/module/windowsserverbackup/get-wbsummary?view=win10-ps)

Запустите оболочку PowerShell и введите команду

Get-WBSummary

Get-WBSummary

Вы получите вот такую информацию:

  • NextBackupTime - Время следующего запуска
  • NumberOfVersions - количество точек
  • LastSuccessfulBackupTime - Время последнего успешного бэкапа
  • LastSuccessfulBackupTargetPath - Последнее успешное место копирования
  • LastSuccessfulBackupTargetLabel - метка задания
  • LastBackupTime - Время последнего успешного бэкапа
  • LastBackupTarget - Последнее место резервного копирования
  • DetailedMessage - Сообщение
  • LastBackupResultHR
  • LastBackupResultDetailedHR
  • CurrentOperationStatus

В результате я точно вижу, что у меня 32 точки. Раньше еще была и еще действует утилита vssadmin. vssadmin более детально может показать информацию, о каждой точке резервного копирования. Запускать ее можно либо через командную строку или же через PowerShell. Введите команду:

vssadmin list shadows

На выходе будет список из всех ваших точек резервного копирования, вот пример:

Contents of shadow copy set ID: {89ecfeea-851b-406e-8fc1-8dcaab672744}
Contained 1 shadow copies at creation time: 04.11.2019 21:14:17
Shadow Copy ID: {6499900e-7a08-4d8f-b8e4-fbd3f4ab146c}
Original Volume: (E:)\\?\Volume{c152a874-0000-0000-0000-100000000000}\
Shadow Copy Volume: \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy985
Originating Machine: dc01.rroot.pyatilistnik.org
Service Machine: dc01.rroot.pyatilistnik.org
Provider: 'Microsoft Software Shadow Copy provider 1.0'
Type: DataVolumeRollback
Attributes: Persistent, No auto release, No writers, Differential

Выполнение команды vssadmin list shadows

Так же более подробно посмотреть все точки можно и через командлет Get-WBBackupSet. Get-WBBackupSet - Получает список резервных копий, которые были созданы для сервера и хранятся в указанном вами месте (Подробнее на https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/ee706675%28v%3dtechnet.10%29)

тут так же будут вот такие данные:

VersionId (Версия) : 11/04/2019-17:00
BackupTime (Время бэкапа) : 04.11.2019 20:00:09
BackupTarget (Целевой диск) : E:
RecoverableItems (Что входит в бэкап) : Volumes, SystemState, Applications, Files
Volume (Метка) : {Local disk (C:)}
Application : {FRS, AD, Registry}
VssBackupOption : VssFullBackup
SnapshotId (Номер снапшота) : 6499900e-7a08-4d8f-b8e4-fbd3f4ab146c
BackupSetId : 2f5e3665-bd26-46b7-baa8-e6c392805245

Выполнение командлета Get-WBBackupSet

Те администраторы, кто имеют слегка побольше опыта, они помнят, что удалить такие точки можно было через утилиту vssadmin, так например выглядит удаление самой старой точки:

vssadmin delete shadows /for=e: /oldest

Но в случае с установленной ролью архивации Windows Server вы получите ошибку:

Error: Snapshots were found, but they were outside of your allowed context. Try removing them with the backup application which created them.

Error: Snapshots were found, but they were outside of your allowed context. Try removing them with the backup application which created them

Она будет работать в случае клиентских операционных систем по типу Windows 8.1, но не в случае Windows Server. Для нашей задачи есть утилита WBADMIN. Предположим, что вы хотите удалять самую старую точку резервного копирования, для этого введите:

WBADMIN DELETE BACKUP -backupTarget:e: -deleteOldest

  • -backupTarget:e: - это диск E:\
  • -deleteOldest - последняя точка

Напоминаю, что у меня их было 32. В результате вас спросят хотите ли вы произвести удаление, нажмите "Y". Далее можно заново через Get-WBSummary посмотреть количество точек. В результате видно, что их стало 31.

Как удалить резервные копии из Windows Server Backup

Чтобы удалить конкретную точку вы можете воспользоваться командой:

WBADMIN DELETE BACKUP -backupTarget:e: -version:12/05/2019-17:00

В результате видно, что у меня было 35 точек восстановления и после удаления точки 12/05/2019-17:00 их осталось 34.

windows backup удаление лишних точек

Еще очень полезно указать максимальное количество точек резервного копирования, и все что сверх этого будет удалено. Попробуйте воспользоваться вот такой конструкцией:

WBADMIN DELETE BACKUP -keepVersions:30 -backupTarget:e:

В результате выполнения команды у меня осталось 30 точек отката и 4 были удалены.

windows backup удаление лишних точек

Вы всегда можете использовать описанные выше команды удаляющие резервные копии из Windows Server Backup по расписанию, для этого вы можете в планировщике задача Windows, создать задачу которая бы выполняла PowerShell скрипт или сконвертированный ps1 в exe. НА этом у меня все, надеюсь, что мой опыт вам пригодится. С вами был Иван Семин ,автор и создатель IT портала Pyatilistnik.org.

Автор - Сёмин Иван

7 Responses to Как удалить резервные копии из Windows Server Backup

  1. Денис:

    Здравствуйте!
    Подскажите пожалуйста, как можно автоматизировать
    WBADMIN DELETE BACKUP -deleteOldest
    через планировщик задач?

  2. Денис:

    Что указать в Действии при настройке задания?

  3. Иван Семин:

    У вас загвоздка в том как сделать задание или точная команда нужна?

  4. Константин:

    Здравствуйте!
    Хотел очистить от бэкапов server 2008R2.

    Если выполнять команду
    WBADMIN DELETE BACKUP -backupTarget:e: -deleteOldest
    Выдает ответ:
    wbadmin 1.0 — инструмент командной строки архивации
    (C) 2004 Корпорация Майкрософт
    —- Поддерживаемые команды —-
    DELETE SYSTEMSTATEBACKUP — удаляет один или несколько архивов состояния системы.

    Если выполнить команду WBADMIN DELETE SYSTEMSTATEBACKUP -backupTarget:e: -deleteOldest в командной строке выдает ответ:
    ОШИБКА: не найдены архивы состояния системы. Эта команда служит только для
    удаления архивов, содержащих только состояние системы.

    Что можно сделать?

  5. Максим:

    Доброго дня.
    Чищу старые копии строчкой wbadmin delete backup -deleteOldest -quiet
    И все бы ничего. Копии уменьшаются. А вот свободное место на диске не добавляется.
    Как свободное место привести в соответствие с реальным количеством резервных копий?
    Всем добра.

  6. Михаил:

    Не работает. Помогло:
    запустить diskshadow и в нем выполнить
    delete shadows all

  7. GeorgiyAD:

    Не забудьте в Target:e: поменять «e:» на ваш раздел с бэкапом.

Добавить комментарий

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