Teilen über


Wiederherstellen von Blobs mithilfe von Azure PowerShell

In diesem Artikel erfahren Sie, wie Sie PowerShell verwenden, um Azure-Blobs aus operativen Sicherungen oder aus Tresorsicherungen wiederherzustellen. Mit operativen Sicherungen können Sie alle Blockblobs in Speicherkonten mit konfigurierter operativer Sicherung oder eine Teilmenge von Blobinhalten für einen beliebigen Zeitpunkt innerhalb des Aufbewahrungsbereichs wiederherstellen. Mit Tresorsicherungen können Sie Wiederherstellungen unter Verwendung eines Wiederherstellungspunkts durchführen, der auf Basis Ihres Sicherungszeitplans erstellt wurde.

Wichtig

Unterstützung für Azure-Blobs ist ab Version Az 5.9.0 verfügbar.

Wichtig

Bevor Sie mit der Wiederherstellung von Azure-Blobs mithilfe von Azure PowerShell fortfahren, machen Sie sich mit einigen wichtigen Punkten vertraut.

In diesem Artikel lernen Sie Folgendes:

  • Wiederherstellen von Azure-Blobs

  • Nachverfolgen des Status des Wiederherstellungsvorgangs

In den Beispielen benutzen wir einen vorhandenen Sicherungstresor TestBkpVault unter der Ressourcengruppe testBkpVaultRG.

$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"

Wiederherstellen von Azure-Blobs in einem Speicherkonto

Auswählen einer Sicherungsebene:

Abrufen des gültigen Zeitbereichs für die Wiederherstellung

Da die operative Sicherung für Blobs fortlaufend erfolgt, gibt es keine eindeutigen Punkte, anhand derer eine Wiederherstellung durchgeführt werden kann. Stattdessen muss der gültige Zeitbereich abgerufen werden, in dem Blobs für einen beliebigen Zeitpunkt wiederhergestellt werden können. In diesem Beispiel suchen wir nach gültigen Zeitbereichen für die Wiederherstellung innerhalb der letzten 30 Tage.

$startDate = (Get-Date).AddDays(-30)
$endDate = Get-Date

Rufen Sie zunächst mithilfe des Befehls Get-AzDataProtectionBackupInstance alle Instanzen ab, und identifizieren Sie die relevante Instanz.

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name

Sie können auch Az.Resourcegraph und den Befehl Search-AzDataProtectionBackupInstanceInAzGraph verwenden, um Instanzen in vielen Tresoren und Abonnements zu durchsuchen.

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureBlob -ProtectionStatus ProtectionConfigured

Rufen Sie nach der Identifizierung der Instanz mit dem Befehl Find-AzDataProtectionRestorableTimeRange den relevanten Wiederherstellungsbereich ab.

Find-AzDataProtectionRestorableTimeRange -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName -StartTime $startDate -endTime $endDate

EndTime    : 2021-04-24T08:57:36.4149422Z
ObjectType : RestorableTimeRange
StartTime  : 2021-03-25T14:27:31.0000000Z

$DesiredPIT = (Get-Date -Date "2021-04-23T02:47:02.9500000Z")

Vorbereiten der Wiederherstellungsanforderung

Sobald der Zeitpunkt für die Wiederherstellung feststeht, gibt es mehrere Optionen für die Wiederherstellung. Verwenden Sie den Befehl Initialize-AzDataProtectionRestoreRequest, um die Wiederherstellungsanforderung mit allen relevanten Details vorzubereiten.

Wiederherstellen aller Blobs zu einem Zeitpunkt

Sie können alle Blockblobs im Speicherkonto wiederherstellen, indem Sie ein Rollback zum ausgewählten Zeitpunkt durchführen. Bei Speicherkonten, die große Datenmengen enthalten oder eine hohe Änderungsrate aufweisen, kann der Vorgang längere Zeit in Anspruch nehmen.

$restorerequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $TestBkpVault.Location  -RestoreType OriginalLocation -PointInTime (Get-Date -Date "2021-04-23T02:47:02.9500000Z") -BackupInstance $AllInstances[2]

Ausgewählte Container wiederherstellen

Sie können bis zu 10 Container durchsuchen und auswählen, die wiederhergestellt werden sollen.

$restorerequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $TestBkpVault.Location  -RestoreType OriginalLocation -PointInTime (Get-Date -Date "2021-04-23T02:47:02.9500000Z") -BackupInstance $AllInstances[2] -ItemLevelRecovery -ContainersList "abc","xyz"

Wiederherstellung von Containern mithilfe eines Präfixabgleichs

Sie können eine Teilmenge von Blobs mithilfe einer Präfixübereinstimmung wiederherstellen. Sie können bis zu 10 lexikografische Bereiche von Blobs innerhalb eines einzelnen Containers oder aus mehreren Containern wiederherstellen, um diese Blobs auf einen Zustand zu einem bestimmten Zeitpunkt zurückzusetzen. Beachten Sie dabei Folgendes:

  • Sie können einen Schrägstrich (/) verwenden, um den Containernamen vom Blobpräfix zu trennen.
  • Der Anfang des angegebenen Bereichs wird mit eingeschlossen, das Ende des angegebenen Bereichs wird jedoch ausgeschlossen.

Erfahren Sie mehr über die Verwendung von Präfixen zum Wiederherstellen von Blobbereichen.

$restorerequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $TestBkpVault.Location  -RestoreType OriginalLocation -PointInTime (Get-Date -Date "2021-04-23T02:47:02.9500000Z") -BackupInstance $AllInstances[2] -ItemLevelRecovery -FromPrefixPattern "containerabc/aaa","containerabc/ccc" -ToPrefixPattern "containerabc/bbb","containerabc/ddd"

Auslösen des Wiederherstellungsvorgangs

Verwenden Sie den Befehl Start-AzDataProtectionBackupInstanceRestore, um die Wiederherstellung mit der oben vorbereiteten Anforderung zu initiieren.

Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $restorerequest

Nachverfolgen eines Auftrags

Sie können alle Aufträge mithilfe des Befehls Get-AzDataProtectionJob nachverfolgen. Sie können alle Aufträge auflisten und ein bestimmtes Auftragsdetail abrufen.

Sie können auch Az.ResourceGraph verwenden, um alle Aufträge für alle Sicherungstresore zu überprüfen. Verwenden Sie den Befehl Search-AzDataProtectionJobInAzGraph, um den relevanten Auftrag zu erhalten, der in jedem Sicherungstresor vorhanden sein kann.

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureBlob -Operation Restore

Nächste Schritte

Übersicht über die Sicherung von Azure-Blobs