Dela via


Återställa Azure Files med PowerShell

Den här artikeln beskriver hur du återställer en hel filresurs, eller specifika filer, från en återställningspunkt som skapats av Azure Backup-tjänsten med Hjälp av Azure PowerShell.

Du kan återställa en hel filresurs eller specifika filer på resursen. Du kan återställa till den ursprungliga platsen eller till en annan plats.

Varning

Kontrollera att PowerShell-versionen har uppgraderats till den lägsta versionen för "Az.RecoveryServices 2.6.0" för AFS-säkerhetskopior. Mer information finns i avsnittet som beskriver kravet för den här ändringen.

Kommentar

Azure Backup stöder nu återställning av flera filer eller mappar till den ursprungliga eller alternativa platsen med hjälp av PowerShell. Mer information finns i det här avsnittet i dokumentet.

Hämta återställningspunkter

Använd Get-AzRecoveryServicesBackupRecoveryPoint för att visa en lista över alla återställningspunkter för det säkerhetskopierade objektet.

I följande skript:

  • Variabeln $rp är en matris med återställningspunkter för det valda säkerhetskopieringsobjektet från de senaste sju dagarna.
  • Matrisen sorteras i omvänd ordning med den senaste återställningspunkten vid index 0.
  • Använd standardindexering av PowerShell-matriser för att välja återställningspunkten.
  • I exemplet väljer $rp[0] den senaste återställningspunkten.
$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

Utdata liknar följande.

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

När du har valt den relevanta återställningspunkten återställer du filresursen eller filen till den ursprungliga platsen eller till en annan plats.

Återställa en Azure-filresurs till en alternativ plats

Använd Restore-AzRecoveryServicesBackupItem för att återställa till den valda återställningspunkten. Ange följande parametrar för att identifiera den alternativa platsen:

  • TargetStorageAccountName: Lagringskontot som det säkerhetskopierade innehållet återställs till. Mållagringskontot måste finnas på samma plats som valvet.
  • TargetFileShareName: Filresurserna i mållagringskontot som det säkerhetskopierade innehållet återställs till.
  • TargetFolder: Mappen under filresursen som data återställs till. Om det säkerhetskopierade innehållet ska återställas till en rotmapp ger du målmappsvärdena som en tom sträng.
  • ResolveConflict: Instruktion om det finns en konflikt med återställde data. Accepterar överskrivning eller hoppa över.

Kör cmdleten med parametrarna på följande sätt:

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

Kommandot returnerar ett jobb med ett ID som ska spåras, enligt följande exempel.

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

Återställa en Azure-fil till en alternativ plats

Använd Restore-AzRecoveryServicesBackupItem för att återställa till den valda återställningspunkten. Ange dessa parametrar för att identifiera den alternativa platsen och för att unikt identifiera den fil som du vill återställa.

  • TargetStorageAccountName: Lagringskontot som det säkerhetskopierade innehållet återställs till. Mållagringskontot måste finnas på samma plats som valvet.
  • TargetFileShareName: Filresurserna i mållagringskontot som det säkerhetskopierade innehållet återställs till.
  • TargetFolder: Mappen under filresursen som data återställs till. Om det säkerhetskopierade innehållet ska återställas till en rotmapp ger du målmappsvärdena som en tom sträng.
  • SourceFilePath: Den absoluta sökvägen till filen som ska återställas i filresursen som en sträng. Den här sökvägen är samma sökväg som används i PowerShell-cmdleten Get-AzStorageFile .
  • SourceFileType: Om en katalog eller en fil är markerad. Accepterar katalog eller fil.
  • ResolveConflict: Instruktion om det finns en konflikt med återställde data. Accepterar överskrivning eller hoppa över.

De ytterligare parametrarna (SourceFilePath och SourceFileType) är endast relaterade till den enskilda fil som du vill återställa.

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

Det här kommandot returnerar ett jobb med ett ID som ska spåras, enligt föregående avsnitt.

Återställa Azure-filresurser och -filer till den ursprungliga platsen

När du återställer till en ursprunglig plats behöver du inte ange mål- och målrelaterade parametrar. Endast ResolveConflict måste anges.

Skriv över en Azure-filresurs

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

Skriv över en Azure-fil

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

Återställa flera filer eller mappar till den ursprungliga eller alternativa platsen

Använd kommandot Restore-AzRecoveryServicesBackupItem genom att skicka sökvägen till alla filer eller mappar som du vill återställa som ett värde för parametern MultipleSourceFilePath.

Återställa flera filer

I följande skript försöker vi återställa FileSharePage.png- och MyTestFile.txt-filerna.

$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

Återställa flera kataloger

I följande skript försöker vi återställa katalogerna zrs1_restore och Återställ .

$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

Resultatet blir något som liknar:

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

Om du vill återställa flera filer eller mappar till en annan plats använder du skripten ovan genom att ange målplatsrelaterade parametervärden, enligt beskrivningen ovan i Återställa en Azure-fil till en annan plats.

Nästa steg

Lär dig mer om att återställa Azure Files i Azure Portal.