Restaurer Azure Files avec PowerShell
Cet article explique comment restaurer l'intégralité d'un partage de fichiers ou des fichiers spécifiques à partir d'un point de restauration créé par le service Sauvegarde Azure à l'aide d'Azure PowerShell.
Vous pouvez restaurer un partage de fichiers entier ou des fichiers spécifiques sur le partage. Vous pouvez restaurer à l’emplacement d’origine ou à un autre emplacement.
Avertissement
Vérifiez que la version de PowerShell est mise à niveau vers la version minimale d'« Az.RecoveryServices 2.6.0 » pour les sauvegardes AFS. Pour plus d'informations, reportez-vous à la section détaillant les conditions de ce changement.
Notes
Sauvegarde Azure prend désormais en charge la restauration de plusieurs fichiers ou dossiers à l'emplacement d'origine ou à un autre emplacement à l'aide de PowerShell. Pour en savoir plus, reportez-vous à cette section du document.
Récupérer des points de récupération
Utilisez Get-AzRecoveryServicesBackupRecoveryPoint pour lister tous les points de récupération correspondant à l’élément sauvegardé.
Dans le script suivant :
- La variable $rp est un tableau de points de récupération des 7 derniers jours pour l’élément de sauvegarde sélectionné.
- Le tableau est trié dans l’ordre chronologique inverse, le point de récupération le plus récent détenant l’index 0.
- Utilisez l'indexation de tableau PowerShell standard pour sélectionner le point de récupération.
- Dans l’exemple, $rp[0] sélectionne le dernier point de récupération.
$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
Le résultat ressemble à ce qui suit.
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
Une fois le point de récupération pertinent sélectionné, vous restaurez le partage de fichiers ou le fichier à l’emplacement d’origine ou à un autre emplacement.
Restaurer un partage de fichiers Azure à un autre emplacement
Utilisez AzRecoveryServicesBackupItem de restauration pour restaurer jusqu’au point de récupération sélectionné. Spécifiez ces paramètres pour identifier l’autre emplacement :
- TargetStorageAccountName : Compte de stockage sur lequel le contenu sauvegardé est restauré. Le compte de stockage cible doit se trouver au même emplacement que le coffre.
- TargetFileShareName : Partages de fichiers du compte de stockage cible sur lesquels le contenu sauvegardé est restauré.
- TargetFolder : Dossier situé sous le partage de fichiers sur lequel les données sont restaurées. Si le contenu sauvegardé doit être restauré dans le dossier racine, indiquez les valeurs du dossier cible sous forme de chaîne vide.
- ResolveConflict : Instruction en cas de conflit avec les données restaurées. Accepte Remplacer ou Ignorer.
Exécutez la cmdlet avec les paramètres comme suit :
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -ResolveConflict Overwrite
La commande retourne un travail avec un ID à suivre, comme indiqué dans l’exemple suivant.
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
testAzureFS Restore InProgress 12/10/2018 9:56:38 AM 9fd34525-6c46-496e-980a-3740ccb2ad75
Restaurer un fichier Azure à un autre emplacement
Utilisez AzRecoveryServicesBackupItem de restauration pour restaurer jusqu’au point de récupération sélectionné. Spécifiez ces paramètres pour identifier l’autre emplacement et pour identifier de façon unique le fichier que vous souhaitez restaurer.
- TargetStorageAccountName : Compte de stockage sur lequel le contenu sauvegardé est restauré. Le compte de stockage cible doit se trouver au même emplacement que le coffre.
- TargetFileShareName : Partages de fichiers du compte de stockage cible sur lesquels le contenu sauvegardé est restauré.
- TargetFolder : Dossier situé sous le partage de fichiers sur lequel les données sont restaurées. Si le contenu sauvegardé doit être restauré dans le dossier racine, indiquez les valeurs du dossier cible sous forme de chaîne vide.
- SourceFilePath : Chemin d'accès absolu du fichier, à restaurer dans le partage de fichiers, sous forme de chaîne. Ce chemin d’accès est le même que celui utilisé dans la cmdlet PowerShell Get-AzStorageFile.
- SourceFileType : Indique si un répertoire ou un fichier est sélectionné. Accepte Répertoire ou Fichier.
- ResolveConflict : Instruction en cas de conflit avec les données restaurées. Accepte Remplacer ou Ignorer.
Les paramètres supplémentaires (SourceFilePath and SourceFileType) concernent uniquement le fichier individuel que vous souhaitez restaurer.
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite
Cette commande retourne un travail avec un ID à suivre, comme indiqué dans la section précédente.
Restaurer des partages de fichiers et fichiers Azure à l’emplacement d’origine
En cas de restauration à l’emplacement d’origine, vous ne devez pas spécifier tous les paramètres liés à la destination/cible. Seul ResolveConflict doit être fourni.
Remplacer un partage de fichiers Azure
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -ResolveConflict Overwrite
Remplacer un fichier Azure
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite
Restaurer plusieurs fichiers ou dossiers à l'emplacement d'origine ou à un autre emplacement
Utilisez la commande Restore-AzRecoveryServicesBackupItem en transmettant le chemin de tous les fichiers ou dossiers que vous souhaitez restaurer en tant que valeur du paramètre MultipleSourceFilePath.
Restaurer plusieurs fichiers
Dans le script suivant, nous tentons de restaurer les fichiers FileSharePage.png et MyTestFile.txt.
$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
Restaurer plusieurs répertoires
Dans le script suivant, nous tentons de restaurer les répertoires zrs1_restore et Restore.
$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
Vous devez obtenir un résultat semblable à ce qui suit :
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
azurefiles Restore InProgress 4/5/2020 8:01:24 AM cd36abc3-0242-44b1-9964-0a9102b74d57
Si vous souhaitez restaurer plusieurs fichiers ou dossiers à un autre emplacement, utilisez les scripts ci-dessus en spécifiant les valeurs des paramètres liés à l'emplacement cible, comme expliqué précédemment dans Restaurer un fichier Azure à un autre emplacement.
Étapes suivantes
En savoir plus sur la restauration d’Azure Files dans le portail Microsoft Azure.