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.