Compartilhar via


Restaurar Arquivos do Azure com o PowerShell

Este artigo explica como restaurar um compartilhamento de arquivos inteiro ou arquivos específicos 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

Não deixe de verificar se a versão do PowerShell está atualizada para a versão mínima para 'AZ.RecoveryServices 2.6.0' para backups do AFS. Para saber mais, consulte a seção estrutura de requisito para essa alteração.

Observação

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 seção do documento para saber como.

Buscar pontos de recuperação

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

No script a seguir:

  • A variável $rp é uma matriz de pontos de recuperação dos últimos sete dias para o item de backup selecionado.
  • A matriz é classificada em ordem inversa de tempo com o último ponto de recuperação no índice 0.
  • Use a indexação de matriz padrão do PowerShell para selecionar 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 deverá ser semelhante a esta.

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

Após selecionar o ponto de recuperação relevante, restaure o compartilhamento de arquivos ou arquivo para o local original ou para um local alternativo.

Restaurar um compartilhamento de arquivo do Azure para uma localização alternativa

Use o Restore-AzRecoveryServicesBackupItem para restaurar para o ponto de recuperação selecionado. Especifique esses 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 que o 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 no compartilhamento de arquivos para a qual os dados são restaurados. Se for para restaurar o conteúdo do backup em uma pasta raiz, forneça os valores da pasta de destino como uma cadeia de caracteres vazia.
  • ResolveConflict: a instrução para o caso de um conflito com os dados restaurados. Aceita Overwrite ou Skip.

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, como 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 uma localização alternativa

Use o Restore-AzRecoveryServicesBackupItem para restaurar para o ponto de recuperação selecionado. Especifique esses parâmetros para identificar o local alternativo e para 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 que o 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 no compartilhamento de arquivos para a qual os dados são restaurados. Se for para restaurar o conteúdo do backup em 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 no compartilhamento de arquivos, como uma cadeia de caracteres. Esse caminho é o mesmo que foi usado no cmdlet Get-AzStorageFile do PowerShell.
  • SourceFileType: se um diretório ou um arquivo está selecionado. Aceita Directory ou File.
  • ResolveConflict: a instrução para o caso de um conflito com os dados restaurados. Aceita Overwrite ou Skip.

Os parâmetros adicionais (SourceFilePath e SourceFileType) estão relacionados somente 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

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

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

Ao restaurar para um local original, não é necessário especificar o destino e os parâmetros relacionados ao destino. Somente 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

Restaurar 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 arquivos

No script a seguir, estamos tentando restaurar os arquivos de 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 o zrs1_restore e Restaurar os diretórios.

$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

A saída 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ê desejar restaurar vários arquivos ou pastas para o 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óximas etapas

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