共用方式為


使用 PowerShell 還原 Azure 檔案

本文說明如何使用 Azure PowerShell,從 Azure 備份服務建立的還原點,還原整個檔案共用或特定檔案。

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

警告

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

注意

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

選取相關的復原點後,即可還原檔案共用或檔案至原始位置或替代位置。

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

使用 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 檔案。