Partilhar via


Restaurar arquivos do Azure com o PowerShell

Este artigo explica como restaurar um compartilhamento de arquivos inteiro, ou arquivos específicos, a partir de um ponto de restauração criado pelo serviço de Backup do Azure usando o Azure PowerShell.

Você pode restaurar um compartilhamento de arquivos inteiro ou arquivos específicos no compartilhamento. Você pode restaurar para o local original ou para um local alternativo.

Aviso

Verifique se a versão do PowerShell foi atualizada para a versão mínima de 'Az.RecoveryServices 2.6.0' para backups AFS. Para obter mais informações, consulte a seção que descreve o requisito para essa alteração.

Nota

O Backup do Azure agora dá suporte à restauração de vários arquivos ou pastas para o Local original ou alternativo usando o PowerShell. Consulte esta secção do documento para saber como.

Buscar pontos de recuperação

Use Get-AzRecoveryServicesBackupRecoveryPoint para listar todos os pontos de recuperação para o item de backup.

No seguinte script:

  • A variável $rp é uma matriz de pontos de recuperação para o item de backup selecionado dos últimos sete dias.
  • A matriz é classificada em ordem inversa de tempo com o ponto de recuperação mais recente no índice 0.
  • Use a indexação de matriz padrão do PowerShell para escolher o ponto de recuperação.
  • No exemplo, $rp[0] seleciona o ponto de recuperação mais 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

A saída é semelhante à seguinte.

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

Depois que o ponto de recuperação relevante for selecionado, restaure o compartilhamento de arquivos ou o arquivo para o local original ou para um local alternativo.

Restaurar um compartilhamento de arquivos do Azure para um local alternativo

Use Restore-AzRecoveryServicesBackupItem para restaurar para o ponto de recuperação selecionado. Especifique estes parâmetros para identificar o local alternativo:

  • TargetStorageAccountName: A conta de armazenamento para a qual o conteúdo de backup é restaurado. A conta de armazenamento de destino deve estar no mesmo local do cofre.
  • TargetFileShareName: Os compartilhamentos de arquivos dentro da conta de armazenamento de destino para a qual o conteúdo de backup é restaurado.
  • TargetFolder: A pasta sob o compartilhamento de arquivos para o qual os dados são restaurados. Se o conteúdo do backup for restaurado para uma pasta raiz, forneça os valores da pasta de destino como uma cadeia de caracteres vazia.
  • ResolveConflict: Instrução se houver um conflito com os dados restaurados. Aceita Substituir ou Ignorar.

Execute o cmdlet com os parâmetros da seguinte maneira:

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

O comando retorna um trabalho com uma ID a ser rastreada, conforme mostrado no exemplo a seguir.

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

Restaurar um arquivo do Azure para um local alternativo

Use Restore-AzRecoveryServicesBackupItem para restaurar para o ponto de recuperação selecionado. Especifique esses parâmetros para identificar o local alternativo e identificar exclusivamente o arquivo que você deseja restaurar.

  • TargetStorageAccountName: A conta de armazenamento para a qual o conteúdo de backup é restaurado. A conta de armazenamento de destino deve estar no mesmo local do cofre.
  • TargetFileShareName: Os compartilhamentos de arquivos dentro da conta de armazenamento de destino para a qual o conteúdo de backup é restaurado.
  • TargetFolder: A pasta sob o compartilhamento de arquivos para o qual os dados são restaurados. Se o conteúdo do backup for restaurado para uma pasta raiz, forneça os valores da pasta de destino como uma cadeia de caracteres vazia.
  • SourceFilePath: O caminho absoluto do arquivo, a ser restaurado dentro do compartilhamento de arquivos, como uma cadeia de caracteres. Esse caminho é o mesmo usado no cmdlet Get-AzStorageFile PowerShell.
  • SourceFileType: Se um diretório ou um arquivo está selecionado. Aceita diretório ou arquivo.
  • ResolveConflict: Instrução se houver um conflito com os dados restaurados. Aceita Substituir ou Ignorar.

Os parâmetros adicionais (SourceFilePath e SourceFileType) estão relacionados apenas ao arquivo individual que você deseja restaurar.

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

Este comando retorna um trabalho com uma ID a ser rastreada, conforme mostrado na seção anterior.

Restaurar compartilhamentos de arquivos e arquivos do Azure para o local original

Ao restaurar para um local original, não é necessário especificar parâmetros relacionados ao destino e ao destino. Apenas ResolveConflict deve ser fornecido.

Substituir um compartilhamento de arquivos do Azure

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

Substituir um arquivo do Azure

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

Restaure vários arquivos ou pastas para o local original ou alternativo

Use o comando Restore-AzRecoveryServicesBackupItem passando o caminho de todos os arquivos ou pastas que você deseja restaurar como um valor para o parâmetro MultipleSourceFilePath .

Restaurar vários ficheiros

No script a seguir, estamos tentando restaurar os arquivos 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

Restaurar vários diretórios

No script a seguir, estamos tentando restaurar os diretórios zrs1_restore e Restaurar .

$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

O resultado será semelhante ao seguinte:

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

Se você quiser restaurar vários arquivos ou pastas para um local alternativo, use os scripts acima especificando os valores de parâmetro relacionados ao local de destino, conforme explicado acima em Restaurar um arquivo do Azure para um local alternativo.

Próximos passos

Saiba mais sobre como restaurar os Arquivos do Azure no portal do Azure.