У меня есть сервер Windows 2008, который выполняет резервное копирование основного диска на локальный жесткий диск.
Поскольку этот сервер меняется не очень часто, я выполняю его вручную только при внесении значимых изменений.
На данный момент я накопил 13 резервных копий на диске. Учитывая, что мне действительно нужны только последние 2; как я могу их убрать?
ОБНОВИТЬ: Для ясности: этот вопрос касается операционной системы Windows Server; не SQL-сервер.
Я загружаю Windows Server Backup на тестовый сервер для подтверждения, но следующий пост должен помочь:
Для резервных копий на основе теневого копирования тома нет прямого способа установить максимальный размер резервной копии с помощью wbadmin. Поскольку для управления версиями Windows Server Backup использует теневые копии, вы можете использовать параметр MAX DIFF AREA Size, чтобы контролировать, сколько места выделяется для хранения версий.
Более того, старая версия резервной копии будет продолжать расти до тех пор, пока не будет израсходовано все свободное пространство. Windows Server Backup автоматически удалит резервную копию старой версии, чтобы освободить место для новых.
Вы можете настроить этот порог здесь: Volume -> settings -> use limit -> XXX MB.
Или вы также можете использовать командную строку «vssadmin resize», чтобы увеличить объем хранилища для ограничения теневых копий.
vssadmin resize shadowstorage /for=<ForVolumeSpec> /on=<OnVolumeSpec> /maxsize=<MaxSizeSpec>
напр. Vssadmin изменить размер shadowstorage / for = F: / on = C: / Maxsize = 900MB
Сделать это по дате легко из сценария Powershell, например.
$Days = 30
$TargetFolder = "D:\temp"
$Now = Get-Date
$LastWrite = $Now.AddDays(-$Days)
$Files = get-childitem $TargetFolder -include *.bkf | Where {$_.LastWriteTime -le "$LastWrite"}
foreach ($File in $Files)
{ write-host "Deleting File $File" -foregroundcolor "Red";
Remove-Item $File
}
Это удалит все файлы * .bkf в папке D: \ temp старше 30 дней.
Немного почесав голову, вы можете адаптировать это, чтобы хранить только определенное количество файлов. Вам нужно будет отсортировать вывод get-childitem по дате в обратном порядке и пропустить первые n файлов.
JR