0 1 1 1 1 1 1 1 1 1 1

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

Комментарии  

Guest
0 # Guest 05.12.2014 22:05
статья понятная и полезная, но не помогла. делал вручную. выбрал нужную точку, команда отработалась, ни разу не ругнулась, но точку не удалила. должен заметить, что сама точка находится под защитой, т.е. время не пришло. ваша инструкция только истекшие точки удаляет?

Спасибо
Ответить | Ответить с цитатой | Цитировать
Y. Goncharov
0 # Y. Goncharov 08.12.2014 22:12
Это били "битые" точки на сколько помню... Уже давненько не сталкивался с подобным, но возможно проблему решит запуск шелла от имени администратора, не пробовали?
Ответить | Ответить с цитатой | Цитировать

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

Вверх
Вниз