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.