Как удалить резервные копии из Windows Server Backup
Добрый день! Уважаемые читатели и гости одного из крупнейших компьютерных блогов 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 и введите команду
Вы получите вот такую информацию:
- NextBackupTime - Время следующего запуска
- NumberOfVersions - количество точек
- LastSuccessfulBackupTime - Время последнего успешного бэкапа
- LastSuccessfulBackupTargetPath - Последнее успешное место копирования
- LastSuccessfulBackupTargetLabel - метка задания
- LastBackupTime - Время последнего успешного бэкапа
- LastBackupTarget - Последнее место резервного копирования
- DetailedMessage - Сообщение
- LastBackupResultHR
- LastBackupResultDetailedHR
- CurrentOperationStatus
В результате я точно вижу, что у меня 32 точки. Раньше еще была и еще действует утилита vssadmin. vssadmin более детально может показать информацию, о каждой точке резервного копирования. Запускать ее можно либо через командную строку или же через PowerShell. Введите команду:
На выходе будет список из всех ваших точек резервного копирования, вот пример:
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
Так же более подробно посмотреть все точки можно и через командлет 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)
тут так же будут вот такие данные:
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
Те администраторы, кто имеют слегка побольше опыта, они помнят, что удалить такие точки можно было через утилиту vssadmin, так например выглядит удаление самой старой точки:
Но в случае с установленной ролью архивации Windows Server вы получите ошибку:
Она будет работать в случае клиентских операционных систем по типу Windows 8.1, но не в случае Windows Server. Для нашей задачи есть утилита WBADMIN. Предположим, что вы хотите удалять самую старую точку резервного копирования, для этого введите:
- -backupTarget:e: - это диск E:\
- -deleteOldest - последняя точка
Напоминаю, что у меня их было 32. В результате вас спросят хотите ли вы произвести удаление, нажмите "Y". Далее можно заново через Get-WBSummary посмотреть количество точек. В результате видно, что их стало 31.
Чтобы удалить конкретную точку вы можете воспользоваться командой:
В результате видно, что у меня было 35 точек восстановления и после удаления точки 12/05/2019-17:00 их осталось 34.
Еще очень полезно указать максимальное количество точек резервного копирования, и все что сверх этого будет удалено. Попробуйте воспользоваться вот такой конструкцией:
В результате выполнения команды у меня осталось 30 точек отката и 4 были удалены.
Вы всегда можете использовать описанные выше команды удаляющие резервные копии из Windows Server Backup по расписанию, для этого вы можете в планировщике задача Windows, создать задачу которая бы выполняла PowerShell скрипт или сконвертированный ps1 в exe. НА этом у меня все, надеюсь, что мой опыт вам пригодится. С вами был Иван Семин ,автор и создатель IT портала Pyatilistnik.org.
Здравствуйте!
Подскажите пожалуйста, как можно автоматизировать
WBADMIN DELETE BACKUP -deleteOldest
через планировщик задач?
Что указать в Действии при настройке задания?
У вас загвоздка в том как сделать задание или точная команда нужна?
Здравствуйте!
Хотел очистить от бэкапов server 2008R2.
Если выполнять команду
WBADMIN DELETE BACKUP -backupTarget:e: -deleteOldest
Выдает ответ:
wbadmin 1.0 — инструмент командной строки архивации
(C) 2004 Корпорация Майкрософт
—- Поддерживаемые команды —-
DELETE SYSTEMSTATEBACKUP — удаляет один или несколько архивов состояния системы.
Если выполнить команду WBADMIN DELETE SYSTEMSTATEBACKUP -backupTarget:e: -deleteOldest в командной строке выдает ответ:
ОШИБКА: не найдены архивы состояния системы. Эта команда служит только для
удаления архивов, содержащих только состояние системы.
Что можно сделать?
Доброго дня.
Чищу старые копии строчкой wbadmin delete backup -deleteOldest -quiet
И все бы ничего. Копии уменьшаются. А вот свободное место на диске не добавляется.
Как свободное место привести в соответствие с реальным количеством резервных копий?
Всем добра.
Не работает. Помогло:
запустить diskshadow и в нем выполнить
delete shadows all
Не забудьте в Target:e: поменять «e:» на ваш раздел с бэкапом.