Wie kann ich einen fehlgeschlagenen Bandsicherungsversuch in DPM 2007 wiederholen?

Wie kann ich einen fehlgeschlagenen Bandsicherungsversuch in DPM 2007 wiederholen?

Wie wiederholen Sie eine geplante Sicherung einer Schutzgruppe, wenn der erste Sicherungsversuch fehlgeschlagen ist (z. B. wenn sich keine Bänder in der Bibliothek befanden oder wenn in der Bibliothek oder im Laufwerk ein zeitweiliger Fehler aufgetreten ist)?

Ich weiß, dass Sie eine Sicherung einzelner geschützter Elemente in der Konsole erzwingen können, indem Sie im Kontextmenü „Wiederherstellungspunkt erstellen – Band“ auswählen, aber wie erzwingen Sie eine Bandsicherung einer ganzen Schutzgruppe?

Antwort1

HAFTUNGSAUSSCHLUSS!! Dies sind bereinigte Versionen dessen, was ich tatsächlich verwende. Ich hatte keine Notwendigkeit, diese bereinigten Versionen zu testen, daher enthalten sie wahrscheinlich ein oder zwei Fehler. Ich bitte um Entschuldigung! Bitte kommentieren/bearbeiten/irgendetwas, wenn Sie einen Fehler finden, damit andere ihn nicht erneut beheben müssen.

  1. Wenn der Fehler unter „Überwachung“ -> „Warnungen“ weiterhin auftritt, können Sie mit der rechten Maustaste darauf klicken und „Sicherungen fortsetzen“ auswählen.
  2. Wenn Sie ein neues Backup erstellen möchten (was sich derzeit auf dem geschützten Server befindet),
    öffnen Sie die DPM-Shell und fügen Sie dieses Skript ein:

    param([string] $dpmname, [string] $pgname)
    
    if(!$dpmname) {
        $dpmname = Read-Host "DPM server"
    }
    if(!$pgname) {
     $pgname =  Read-Host "Protection Group Friendly Name"
    }
    Write-Output "Creating Tape Recovery Point"
    trap{"Error in execution... $_";break}
    &{
        Write-Output "Getting protection group $pgname in $dpmname..."
        $clipg = Get-ProtectionGroup $dpmname | where { $_.FriendlyName -eq $pgname}
        if($clipg -eq $abc) {
            Throw "No PG found"
        }
        Write-Output "Getting DS from PG $pgname..."
        $backupds = @(Get-Datasource $clipg)
        foreach ($ds in $backupds) {
            Write-Output "Creating Recovery point for $ds..."
            $j = New-RecoveryPoint -Datasource $ds -Tape -ProtectionType LongTerm
            $jobtype = $j.jobtype
            Write-Output "$jobtype Job has been triggerred..."
        }
    }
    

    Sie werden nach dem Namen des zu sichernden Servers und der Schutzgruppe gefragt.

  3. Wenn Sie eine Festplattensicherung auf ein Bandmedium kopieren möchten (für die gesamte Schutzgruppe),
    öffnen Sie die DPM-Shell und fügen Sie dieses Skript ein:

    param([string] $dpmserver, [string] $pgname, [datetime] $rpdt, [int] $tapeoption)
    $searchminutes = 10
    $libraryindex = 0
    if(!$dpmserver) {
        $dpmserver = Read-Host "DPM server"
    }
    if(!$pgname) {
        $pgname =  Read-Host "Protection Group Friendly Name"
    }
    if(!$rpdt) {
        $rpdt = Read-Host "Time of existing Recovery Point"
        if (($rpdt -as [DateTime]) -ne $null) {
            $rpdt = [DateTime]::Parse($rpdt)
        } else {
            Write-Host 'You did not enter a valid date/time!'
        }
    }
    $rpdt.AddMinutes($serachminutes / 2)
    if(!$tapeoption) {
        $tapeoption = Read-Host "Tape Option: 0 = Compress, 1 = Encrypt, 2 = Neither"
    }
    Write-Host "Creating $backupoption Recovery Point"
    trap{"Error in execution... $_";break}
    &{
        Write-Host "-Getting protection group $pgname in $dpmserver..."
        $clipg = Get-ProtectionGroup $dpmserver | where { $_.FriendlyName -eq $pgname}
        if(!$clipg) {
            Throw "No PG found!"
        }
        Write-Host "-Getting libraries on $dpmserver..."
        $libraries = @(Get-DPMLibrary -DPMServerName $dpmserver)
        if(!$libraries) {
            Throw "No Tape Drive/Library found!"
        }
        Write-Output "--Getting Data Sources from Protection Group $pgname..."
        $backupds = @(Get-Datasource $clipg)
        foreach ($ds in $backupds) {
            Write-Host -NoNewline "---$ds... "
            $rps = @(Get-RecoveryPoint -Datasource $ds) | Where { (New-TimeSpan -Start $_.RepresentedPointInTime -End $rpdt).TotalMinutes -lt $searchminutes }
            Write-Host -NoNewline "RPs Found... "
            foreach ($rp in $rps) {
                Write-Host -NoNewLine "Creating Job... "
                $j = Copy-DPMTapeData -RecoveryPoint $rp -SourceLibrary $libraries[$libraryindex] -TapeLabel "asdf" -TapeOption $tapeoption -TargetLibrary $libraries[$libraryindex]
                Write-Host "Job: $j.status"
            }
        }
    }
    

    Hinweis: Wenn Sie wissen, was Sie tun, ist die Grundstruktur des obigen Skripts:

    $libs = @(Get-DPMLibrary -DPMServerName $dpmname)
    $pg = @(Get-ProtectionGroup -DPMServerName @dpmname)
    $ds = @(Get-Datasouce -ProtectionGroup $pg[n])
    $rp = @(GetRecoverPoint -Datasource $ds[n])
    Copy-DPMTapeData -RecoveryPoint $pr[n] -SourceLibrary $libs[n] -TapeLabel "Whatever" -TapeOption $x $TargetLibrary $libs[n]
    

verwandte Informationen