Freigeben über


Wiederherstellen von Azure-Blobs mit 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 archivierten Backups können Sie Wiederherstellungen unter Verwendung eines Wiederherstellungspunkts durchführen, der entsprechend Ihrem Sicherungszeitplan erstellt wurde.

Sie können Azure Blobs auch mithilfe von Azure-Portal, Azure CLI, REST-API wiederherstellen.

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 Backup fortfahren, machen Sie sich mit den 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:

Den gültigen Zeitraum für die Wiederherstellung abrufen

Da die operative Sicherung für Blobs fortlaufend erfolgt, gibt es keine eindeutigen Punkte, anhand derer eine Wiederherstellung durchgeführt werden kann. Stattdessen müssen wir den gültigen Zeitbereich abrufen, innerhalb dessen Blobs für jeden 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 über mehrere Container hinweg angeben, um diese Blobs zu einem vorherigen Zustand zu einem bestimmten Zeitpunkt zurückzuführen. Beachten Sie dabei Folgendes:

  • Sie können einen Schrägstrich (/) verwenden, um den Containernamen vom Blobpräfix zu trennen.
  • Der Anfang des angegebenen Bereichs ist inklusive, während der angegebene Bereich als Ganzes exklusiv ist.

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