KeyWeb

Удаление точек восстановления 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 ..."

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


Обновить
Защитный код

KeyWeb

Сейчас 92 гостей и ни одного зарегистрированного пользователя на сайте

Вверх
Вниз