Delen via


Azure Files herstellen met PowerShell

In dit artikel wordt uitgelegd hoe u een volledige bestandsshare of specifieke bestanden herstelt vanaf een herstelpunt dat is gemaakt door de Azure Backup-service met behulp van Azure PowerShell.

U kunt een volledige bestandsshare of specifieke bestanden op de share herstellen. U kunt herstellen naar de oorspronkelijke locatie of naar een alternatieve locatie.

Waarschuwing

Zorg ervoor dat de PowerShell-versie is bijgewerkt naar de minimale versie voor Az.RecoveryServices 2.6.0 voor AFS-back-ups. Zie de sectie waarin de vereiste voor deze wijziging wordt beschreven voor meer informatie.

Notitie

Azure Backup ondersteunt nu het herstellen van meerdere bestanden of mappen naar de oorspronkelijke of alternatieve locatie met behulp van PowerShell. Raadpleeg deze sectie van het document voor meer informatie.

Herstelpunten ophalen

Gebruik Get-AzRecoveryServicesBackupRecoveryPoint om alle herstelpunten voor het back-upitem weer te geven.

In het volgende script:

  • De variabele $rp is een matrix met herstelpunten voor het geselecteerde back-upitem van de afgelopen zeven dagen.
  • De matrix wordt in omgekeerde volgorde gesorteerd met het laatste herstelpunt op index 0.
  • Gebruik standaard PowerShell-matrixindexering om het herstelpunt te kiezen.
  • In het voorbeeld selecteert $rp[0] het meest recente herstelpunt.
$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"
$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID
$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"
$startDate = (Get-Date).AddDays(-7)
$endDate = Get-Date
$rp = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID -StartDate $startdate.ToUniversalTime() -EndDate $enddate.ToUniversalTime()
$rp[0] | fl

De uitvoer is vergelijkbaar met het volgende.

FileShareSnapshotUri : https://testStorageAcct.file.core.windows.net/testAzureFS?sharesnapshot=2018-11-20T00:31:04.00000
                       00Z
RecoveryPointType    : FileSystemConsistent
RecoveryPointTime    : 11/20/2018 12:31:05 AM
RecoveryPointId      : 86593702401459
ItemName             : testAzureFS
Id                   : /Subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/testVaultRG/providers/Micros                      oft.RecoveryServices/vaults/testVault/backupFabrics/Azure/protectionContainers/StorageContainer;storage;teststorageRG;testStorageAcct/protectedItems/AzureFileShare;testAzureFS/recoveryPoints/86593702401462
WorkloadType         : AzureFiles
ContainerName        : storage;teststorageRG;testStorageAcct
ContainerType        : AzureStorage
BackupManagementType : AzureStorage

Nadat het relevante herstelpunt is geselecteerd, herstelt u de bestandsshare of het bestand naar de oorspronkelijke locatie of naar een alternatieve locatie.

Een Azure-bestandsshare herstellen naar een alternatieve locatie

Gebruik restore-AzRecoveryServicesBackupItem om te herstellen naar het geselecteerde herstelpunt. Geef deze parameters op om de alternatieve locatie te identificeren:

  • TargetStorageAccountName: het opslagaccount waarnaar de back-upinhoud wordt hersteld. Het doelopslagaccount moet zich op dezelfde locatie bevinden als de kluis.
  • TargetFileShareName: de bestandsshares binnen het doelopslagaccount waarnaar de back-upinhoud wordt hersteld.
  • TargetFolder: de map onder de bestandsshare waarnaar gegevens worden hersteld. Als de back-upinhoud moet worden hersteld naar een hoofdmap, geeft u de doelmapwaarden op als een lege tekenreeks.
  • ResolveConflict: Instructie als er een conflict is met de herstelde gegevens. Accepteert overschrijven of overslaan.

Voer de cmdlet als volgt uit met de parameters:

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -ResolveConflict Overwrite

De opdracht retourneert een taak met een id die moet worden bijgehouden, zoals wordt weergegeven in het volgende voorbeeld.

WorkloadName     Operation            Status               StartTime                 EndTime                   JobID
------------     ---------            ------               ---------                 -------                   -----
testAzureFS        Restore              InProgress           12/10/2018 9:56:38 AM                               9fd34525-6c46-496e-980a-3740ccb2ad75

Een Azure-bestand herstellen naar een alternatieve locatie

Gebruik restore-AzRecoveryServicesBackupItem om te herstellen naar het geselecteerde herstelpunt. Geef deze parameters op om de alternatieve locatie te identificeren en om het bestand dat u wilt herstellen, uniek te identificeren.

  • TargetStorageAccountName: het opslagaccount waarnaar de back-upinhoud wordt hersteld. Het doelopslagaccount moet zich op dezelfde locatie bevinden als de kluis.
  • TargetFileShareName: de bestandsshares binnen het doelopslagaccount waarnaar de back-upinhoud wordt hersteld.
  • TargetFolder: de map onder de bestandsshare waarnaar gegevens worden hersteld. Als de back-upinhoud moet worden hersteld naar een hoofdmap, geeft u de doelmapwaarden op als een lege tekenreeks.
  • SourceFilePath: het absolute pad van het bestand, dat als tekenreeks moet worden hersteld binnen de bestandsshare. Dit pad is hetzelfde pad dat wordt gebruikt in de PowerShell-cmdlet Get-AzStorageFile .
  • SourceFileType: Hiermee wordt aangegeven of een map of bestand is geselecteerd. Accepteert map of bestand.
  • ResolveConflict: Instructie als er een conflict is met de herstelde gegevens. Accepteert overschrijven of overslaan.

De aanvullende parameters (SourceFilePath en SourceFileType) zijn alleen gerelateerd aan het afzonderlijke bestand dat u wilt herstellen.

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Met deze opdracht wordt een taak geretourneerd met een id die moet worden bijgehouden, zoals wordt weergegeven in de vorige sectie.

Azure-bestandsshares en -bestanden herstellen naar de oorspronkelijke locatie

Wanneer u herstelt naar een oorspronkelijke locatie, hoeft u geen doel- en doelparameters op te geven. Alleen ResolveConflict moet worden opgegeven.

Een Azure-bestandsshare overschrijven

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -ResolveConflict Overwrite

Een Azure-bestand overschrijven

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite

Meerdere bestanden of mappen herstellen naar de oorspronkelijke of alternatieve locatie

Gebruik de opdracht Restore-AzRecoveryServicesBackupItem door het pad door te geven van alle bestanden of mappen die u wilt herstellen als een waarde voor de parameter MultipleSourceFilePath .

Meerdere bestanden herstellen

In het volgende script proberen we de FileSharePage.png en MyTestFile.txt bestanden te herstellen.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("FileSharePage.png", "MyTestFile.txt")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType File -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

Meerdere mappen herstellen

In het volgende script proberen we de zrs1_restore en mappen te herstellen.

$vault = Get-AzRecoveryServicesVault -ResourceGroupName "azurefiles" -Name "azurefilesvault"

$Container = Get-AzRecoveryServicesBackupContainer -ContainerType AzureStorage -Status Registered -FriendlyName "afsaccount" -VaultId $vault.ID

$BackupItem = Get-AzRecoveryServicesBackupItem -Container $Container -WorkloadType AzureFiles -VaultId $vault.ID -FriendlyName "azurefiles"

$RP = Get-AzRecoveryServicesBackupRecoveryPoint -Item $BackupItem -VaultId $vault.ID

$files = ("Restore","zrs1_restore")

Restore-AzRecoveryServicesBackupItem -RecoveryPoint $RP[0] -MultipleSourceFilePath $files -SourceFileType Directory -ResolveConflict Overwrite -VaultId $vault.ID -VaultLocation $vault.Location

De uitvoer lijkt op de volgende:

WorkloadName         Operation         Status          StartTime                EndTime       JobID
------------         ---------         ------          ---------                -------       -----
azurefiles           Restore           InProgress      4/5/2020 8:01:24 AM                    cd36abc3-0242-44b1-9964-0a9102b74d57

Als u meerdere bestanden of mappen wilt herstellen naar een alternatieve locatie, gebruikt u de bovenstaande scripts door de parameterwaarden voor de doellocatie op te geven, zoals hierboven wordt uitgelegd in Een Azure-bestand herstellen naar een alternatieve locatie.

Volgende stappen

Meer informatie over het herstellen van Azure Files in Azure Portal.