Удаление точек восстановления DPM, посредством DPM Management Shell, актуально, когда существует множеств Protection Group (PG) c “битыми” дисковыми репликами и пересоздавать группы с нуля совершенно ну никак не хочется.
Для начала необходимо найти все PG на DPM сервере:
$pgList = Get-ProtectionGroup ServerName
Просматриваем имена существующих групп:
foreach($pg in $pgList){write-host $pg.FriendlyName}
Получение источника данных для одной из групп (к примеру, самой первой из списка):
$dslist = get-datasource $pglist[0]
Где [0], [1], [2] и т.д. элементы списка.
Просматриваем существующие источники:
$dslist
Так же можно просмотреть конкретно имена:
foreach($ds in $dslist){write-host $ds.name}
далее смотрим все точки восстановления (по времени создания) на самом первом диске из списка:
$rplist=get-recoverypoint $dslist[0]
foreach($rp in $rplist){write-host $rp.representedpointintime}
Удаляем, к примеру, первую точку:
remove-recoverypoint -recoverypoint $rplist[0]
Удаляем все точки:
foreach($rp in $rplist){remove-recoverypoint -recoverypoint $rp -Confirm:$false}
Пока писал статью накидал быстренько скрипт, который отображает PG и точки, а так же предлагает их удалить, где подтверждением для удаления является цифра 1:
Add-PSSnapin "Microsoft.DataProtectionManager.PowerShell"
$dpmname = read-host "DPMServerName:"
$pgList = Get-ProtectionGroup $dpmname
foreach($pg in $pgList)
{
$Name = $pg.FriendlyName
Write-Host "Current PG - $Name..."
$dsList = Get-Datasource $pg
Foreach($ds in $dsList)
{
$Name = $ds.Name
Write-Host "Recovery points - $Name ..."
$a = read-host "Clear group? (1)"
$rpList = Get-RecoveryPoint $ds
if ($a -eq 1)
{
Foreach($rp in $rpList)
{
write-host $rp.representedpointintime
foreach($rp in $rplist){remove-recoverypoint -recoverypoint $rp -Confirm:$false}
}
}
}
}
write-host "The End ..."
Вот просто вывод всей информации о точках:
Add-PSSnapin "Microsoft.DataProtectionManager.PowerShell"
$dpmname = read-host "DPMServerName:"
$pgList = Get-ProtectionGroup $dpmname
foreach($pg in $pgList)
{
$Name = $pg.FriendlyName
Write-Host "Current PG - $Name..."
$dsList = Get-Datasource $pg
Foreach($ds in $dsList)
{
$Name = $ds.Name
Write-Host "Recovery points - $Name ..."
$rpList = Get-RecoveryPoint $ds
Foreach($rp in $rpList)
{
write-host $rp.representedpointintime
foreach($rp in $rplist){remove-recoverypoint -recoverypoint $rp -Confirm:$false}
}
}
}
write-host "The End ..."
| Следующая > |
|---|























