Partager via


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.