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.

È 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

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, ripristinare la condivisione file o il file nel percorso originale o in un percorso alternativo.

Ripristinare una condivisione 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:

  • 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 sottoposto a 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 un 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 sottoposto a 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 condivisioni file e file di Azure nel percorso 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 una condivisione file di Azure

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

Sovrascrivere un 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 un file di Azure in un percorso alternativo.

Passaggi successivi

Informazioni sul ripristino di File di Azure nel portale di Azure.