Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
本文介绍如何使用 Azure PowerShell 从由 Azure Backup 服务创建的还原点还原整个文件共享或特定文件。 还可以使用 Azure portal、Azure CLI、REST API 还原Azure Files。
可以还原整个文件共享或共享上的特定文件。 可以还原到原始位置或备用位置。
警告
确保 PowerShell 版本已升级到 AFS 备份的最低版本“Az.RecoveryServices 2.6.0”。 有关详细信息,请参阅本部分概述此更改的要求。
注意
- Azure Files 还原仅在使用 PowerShell 或 CLI 时支持在同一订阅内进行。
- 不支持使用 PowerShell 或 CLI 进行跨区域还原。
- Azure Backup现在支持使用 PowerShell 将多个文件或文件夹还原到原始或备用位置。 请参阅本文的这一部分,了解如何操作。
若要了解 Azure Files支持的备份和还原方案、区域可用性和限制,请参阅 support matrix。 有关常见问题,请参阅 常见问题。
提取恢复点
使用 Get-AzRecoveryServicesBackupRecoveryPoint 列出已备份项的所有恢复点。
在以下脚本中:
- 变量 $rp 是一个数组,其中包含所选备份项在过去七天的恢复点。
- 该数组按时间进行反向排序,以最新的恢复点作为索引 0。
- 使用标准 PowerShell 数组索引选取恢复点。
- 在示例中,$rp[0] 选择最近的恢复点。
$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
输出如下所示。
FileShareSnapshotUri : https://testStorageAcct.file.core.chinacloudapi.cn/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
选择相关的恢复点后,可将文件共享或文件还原到原始位置或备用位置。
将文件共享还原到备用位置
使用 Restore-AzRecoveryServicesBackupItem 还原到所选的恢复点。 指定以下参数来标识备用位置:
- TargetStorageAccountName:用于还原备份内容的存储帐户。 目标存储帐户必须与保管库位于同一位置。
- TargetFileShareName:目标存储帐户中用于还原备份内容的文件共享。
- TargetFolder:在文件共享中还原数据的目标文件夹。 如果要将备份内容还原到根文件夹,请将目标文件夹值指定为空字符串。
- ResolveConflict:与还原的数据发生冲突时提供的说明。 接受“覆盖”或“跳过”。
使用以下参数运行 cmdlet:
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -ResolveConflict Overwrite
该命令返回一个要跟踪的、带有 ID 的作业,如以下示例所示。
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
testAzureFS Restore InProgress 12/10/2018 9:56:38 AM 9fd34525-6c46-496e-980a-3740ccb2ad75
将Azure Files还原到备用位置
使用 Restore-AzRecoveryServicesBackupItem 还原到所选的恢复点。 指定以下参数来标识备用位置,以及唯一标识要还原的文件。
- TargetStorageAccountName:用于还原备份内容的存储账户。 目标存储帐户必须与保管库位于同一位置。
- TargetFileShareName:目标存储帐户中的文件共享,其中文件共享用来还原备份内容。
- TargetFolder:在文件共享中还原数据的目标文件夹。 如果要将备份内容还原到根文件夹,请将目标文件夹值指定为空字符串。
- SourceFilePath:文件共享中要还原的文件的绝对路径(字符串格式)。 此路径与 Get-AzStorageFile PowerShell cmdlet 中使用的路径相同。
- SourceFileType:是否已选择目录或文件。 接受目录或文件。
- ResolveConflict:与还原的数据发生冲突时提供的说明。 接受“覆盖”或“跳过”。
其他参数(SourceFilePath 和 SourceFileType)只与要还原的单个文件相关。
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -TargetStorageAccountName "TargetStorageAcct" -TargetFileShareName "DestAFS" -TargetFolder "testAzureFS_restored" -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite
该命令返回一个要跟踪的、带有 ID 的作业,如前一部分中所示。
将Azure Files和文件还原到原始位置
在还原到原始位置时,无需指定目的地和目标相关的参数。 仅“ResolveConflict”必须提供。
覆盖 Azure Files
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -ResolveConflict Overwrite
覆盖 Azure 文件存储
Restore-AzRecoveryServicesBackupItem -RecoveryPoint $rp[0] -SourceFileType File -SourceFilePath "TestDir/TestDoc.docx" -ResolveConflict Overwrite
将多个文件或文件夹还原到原始或备用位置
通过将要还原的所有文件或文件夹的路径作为 MultipleSourceFilePath 参数的值传递,使用 Restore-AzRecoveryServicesBackupItem 命令。
还原多个文件
在以下脚本中,我们尝试还原 FileSharePage.png 和 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
还原多个目录
在以下脚本中,我们尝试还原 zrs1_restore 和 Restore 目录 。
$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
输出将如下所示:
WorkloadName Operation Status StartTime EndTime JobID
------------ --------- ------ --------- ------- -----
azurefiles Restore InProgress 4/5/2020 8:01:24 AM cd36abc3-0242-44b1-9964-0a9102b74d57
如果要将多个文件或文件夹还原到备用位置,请通过指定目标位置相关的参数值来使用上述脚本,如将存储Azure Files还原到备用位置中所述。
后续步骤
使用 Azure portal、Azure PowerShell、Azure CLI、REST API 管理Azure Files备份。