Condividi tramite


Ripristinare File di Azure con PowerShell

Questo articolo illustra come ripristinare un'intera condivisione file o file specifici da un punto di ripristino creato dal servizio Backup di Azure usando Azure PowerShell. È anche possibile ripristinare File di Azure usando il portale di Azure, l'interfaccia della riga di comando di Azure, l'API REST.

È possibile ripristinare un'intera condivisione file o file specifici nella condivisione. È possibile eseguire il ripristino nel percorso originale o in un percorso alternativo.

Avviso

Assicurarsi che la versione di PowerShell sia aggiornata alla versione minima per 'Az.RecoveryServices 2.6.0' per i backup AFS. Per altre informazioni, vedere la sezione in cui si delinea il requisito per questa modifica.

Nota

  • Il ripristino di File di Azure è supportato solo all'interno della stessa sottoscrizione quando si usa PowerShell o l'interfaccia della riga di comando.
  • Backup di Azure supporta ora il ripristino di più file o cartelle nel percorso originale o alternativo usando PowerShell. Per informazioni, vedere questa sezione del documento.

Recuperare i punti di recupero

Usare Get-AzRecoveryServicesBackupRecoveryPoint per elencare tutti i punti di ripristino per l'elemento di cui è stato eseguito il backup.

Nello script seguente:

  • La variabile $rp è una matrice di punti di ripristino per l'elemento di backup selezionato negli ultimi sette giorni.
  • La matrice viene ordinata in ordine inverso di tempo con il punto di recupero più recente in posizione 0 nell'indice.
  • Per scegliere il punto di ripristino, usare l'indicizzazione standard della matrice di PowerShell.
  • Nell'esempio $rp [0] seleziona il punto di recupero più recente.
$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

L'output è simile al seguente.

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

Dopo aver selezionato il punto di ripristino pertinente, ripristini la condivisione file o il file alla posizione originale o a una posizione alternativa.

Ripristinare la condivisione di file in un percorso alternativo

Usare Restore-AzRecoveryServicesBackupItem per eseguire il ripristino nel punto di ripristino selezionato. Specificare questi parametri per identificare il percorso alternativo:

  • TargetStorageAccountName: account di archiviazione in cui viene ripristinato il contenuto di cui è stato eseguito il backup. L'account di archiviazione di destinazione deve trovarsi nella stessa posizione dell'insieme di credenziali.
  • TargetFileShareName: condivisioni file all'interno dell'account di archiviazione di destinazione in cui viene ripristinato il contenuto di cui è stato eseguito il backup.
  • TargetFolder: cartella nella condivisione file in cui vengono ripristinati i dati. Se il contenuto sottoposto a backup deve essere ripristinato in una cartella radice, fornire i valori della cartella di destinazione come stringa vuota.
  • ResolveConflict: istruzione in caso di conflitto con i dati ripristinati. Accetta Overwrite o skip.

Eseguire il cmdlet con i parametri come indicato di seguito:

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

Il comando restituisce un processo con un ID di cui tenere traccia, come mostrato nell'esempio seguente.

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

Ripristinare File di Azure in un percorso alternativo

Usare Restore-AzRecoveryServicesBackupItem per eseguire il ripristino nel punto di ripristino selezionato. Specificare questi parametri per identificare il percorso alternativo e identificare in modo univoco il file da ripristinare.

  • TargetStorageAccountName: account di archiviazione in cui viene ripristinato il contenuto di cui è stato eseguito il backup. L'account di archiviazione di destinazione deve trovarsi nella stessa posizione dell'insieme di credenziali.
  • TargetFileShareName: condivisioni file all'interno dell'account di archiviazione di destinazione in cui viene ripristinato il contenuto di cui è stato eseguito il backup.
  • TargetFolder: cartella nella condivisione file in cui vengono ripristinati i dati. Se il contenuto sottoposto a backup deve essere ripristinato in una cartella radice, fornire i valori della cartella di destinazione come stringa vuota.
  • SourceFilePath: percorso assoluto del file da ripristinare all'interno della condivisione file come stringa. Questo percorso è uguale a quello usato nel cmdlet Get-AzStorageFile di PowerShell.
  • SourceFileType: indica se è selezionata una directory o un file. Accetta Directory o File.
  • ResolveConflict: istruzione in caso di conflitto con i dati ripristinati. Accetta Overwrite o skip.

I parametri aggiuntivi (SourceFilePath e SourceFileType) sono correlati solo al singolo file da ripristinare.

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

Questo comando restituisce un processo con un ID da tenere traccia, come illustrato nella sezione precedente.

Ripristinare Azure File e file nella posizione originale

Quando si esegue il ripristino in una posizione originale, non è necessario specificare parametri correlati alla destinazione e alla destinazione. Deve essere fornito solo ResolveConflict.

Sovrascrivere File di Azure

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

Sovrascrivere File di Azure

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

Ripristinare più file o cartelle in un percorso originale o alternativo

Usare il comando Restore-AzRecoveryServicesBackupItem passando il percorso di tutti i file o le cartelle da ripristinare come valore per il parametro MultipleSourceFilePath.

Ripristinare più file

Nello script seguente si sta tentando di ripristinare i file FileSharePage.png e 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

Ripristinare più directory

Nello script seguente si sta tentando di ripristinare le directory zrs1_restore e Ripristina.

$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

L'output sarà simile al seguente:

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

Per ripristinare più file o cartelle in un percorso alternativo, usare gli script precedenti specificando i valori dei parametri correlati al percorso di destinazione, come illustrato in precedenza in Ripristinare File di Azure in un percorso alternativo.

Passaggi successivi

Gestire i backup di File di Azure usando il portale di Azure, Azure PowerShell, l'interfaccia a riga di comando di Azure, l'API REST.