共用方式為


使用 PowerShell 還原 Azure 檔案

本文說明如何使用 Azure PowerShell,從 Azure 備份 服務所建立的還原點還原整個檔案共用或特定檔案。 您也可以使用 Azure 入口網站Azure CLIREST API 來還原 Azure 檔案記憶體。

您可以還原整個檔案共享或共用上的特定檔案。 您可以還原到原始位置或替代位置。

警告

請確定 PowerShell 版本已升級至 AFS 備份 'Az.RecoveryServices 2.6.0' 的最低版本。 如需詳細資訊,請參閱概述這項變更需求的章節

注意

  • 只有在使用 PowerShell 或 CLI 時,相同的訂用帳戶才支援 Azure 檔案還原。
  • Azure 備份目前支援使用 PowerShell 還原多個檔案或資料夾至原始位置或替代位置。 請參閱本文件此章節,了解使用方式。

擷取復原點

使用 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.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

選取相關的恢復點之後,您可以將檔案共享或檔案還原至原始位置,或還原至替代位置。

將檔案共用還原至替代位置

使用 Restore-AzRecoveryServicesBackupItem 還原至選取的復原點。 指定這些參數來識別替代位置:

  • TargetStorageAccountName:要還原備份內容的目標儲存體帳戶。 目標儲存體帳戶必須與保存庫位於相同位置。
  • TargetFileShareName:還原備份內容的目標記憶體帳戶內的檔案共用。
  • TargetFolder:還原數據之檔案共用下的資料夾。 如果備份的內容還原至根資料夾,則將目標資料夾值設為空字串。
  • ResolveConflict:還原資料發生衝突時的指示。 可接受的值為 OverwriteSkip

使用參數執行 Cmdlet,如下所示:

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

此命令會傳回具識別碼可供追蹤的作業,如下列範例所示。

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

將 Azure 檔案服務還原至替代位置

使用 Restore-AzRecoveryServicesBackupItem 還原至選取的復原點。 指定這些參數來識別替代位置,並以唯一的方式識別您要還原的檔案。

  • TargetStorageAccountName:要還原備份內容的目標儲存體帳戶。 目標儲存體帳戶必須與保存庫位於相同位置。
  • TargetFileShareName:還原備份內容的目標記憶體帳戶內的檔案共用。
  • TargetFolder:還原數據之檔案共用下的資料夾。 如果備份的內容還原至根資料夾,則將目標資料夾值設為空字串。
  • SourceFilePath:要以字串的形式在檔案共享內還原之檔案的絕對路徑。 此路徑與 Get-AzStorageFile PowerShell Cmdlet 中使用的路徑相同。
  • SourceFileType:選取目錄或檔案。 可接受的值為 DirectoryFile
  • ResolveConflict:還原資料發生衝突時的指示。 可接受的值為 OverwriteSkip

其他參數 (SourceFilePath 和 SourceFileType) 僅涉及您要還原的個別檔案。

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

此命令會傳回包含可追蹤識別碼的作業,如之前章節所示。

將 Azure 檔案和檔案還原至原始位置

還原至原始位置時,無需指定與目的地和目標相關的參數。 僅必須提供 ResolveConflict

覆寫 Azure 檔案服務

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

覆寫 Azure 檔案服務

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

還原多個檔案或資料夾至原始或替代位置

使用 Restore-AzRecoveryServicesBackupItem 命令,方法是將您要還原的所有檔案或資料夾路徑做為 MultipleSourceFilePath 參數的值傳遞。

還原多個檔案

在下列指令碼中,我們會嘗試還原 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 檔案還原至替代位置中所述。

下一步

使用 Azure 入口網站Azure PowerShellAzure CLIREST API 來管理 Azure 檔案記憶體備份。