共用方式為


使用 Azure PowerShell 進行還原 Azure Blob 物件

本文說明如何使用 PowerShell 從作業保存備份執行 Azure Blob 的還原。 有了作業備份,您可以將已設定作業備份的儲存體帳戶中的所有區塊 Blob 或 Blob 內容子集還原到保留期間內的任何時間點。 透過保存庫備份,您可以使用根據備份排程建立的恢復點來執行還原。

您也可以 使用 Azure 入口網站、 Azure CLIREST API,透過 Azure 備份來還原 Azure Blob。

重要

Az 5.9.0 版開始支援 Azure Blob。

重要

繼續使用 Azure 備份還原 Azure Blob 之前,請先參閱重點

在本文中,您將學會如何:

  • 還原 Azure Blob

  • 追蹤還原作業狀態

我們會在範例中使用資源群組 testBkpVaultRG 下現有的備份保存庫 TestBkpVault

$TestBkpVault = Get-AzDataProtectionBackupVault -VaultName TestBkpVault -ResourceGroupName "testBkpVaultRG"

在儲存體帳戶內還原 Azure Blob

選擇備份階層

擷取有效的還原時間範圍

因為 Blob 備份作業是連續的,所以沒有不同的還原點。 所以我們需要擷取有效的時間範圍,以將 Blob 還原至任何時間點。 在此範例中,讓我們檢查過去 30 天內的有效還原時間範圍。

$startDate = (Get-Date).AddDays(-30)
$endDate = Get-Date

首先使用 Get-AzDataProtectionBackupInstance 命令擷取所有執行個體,並識別相關的執行個體。

$AllInstances = Get-AzDataProtectionBackupInstance -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name

您也可以使用 Az.Resourcegraph 和 Search-AzDataProtectionBackupInstanceInAzGraph 命令,在多個保管庫和訂閱的實例中進行搜索。

$AllInstances = Search-AzDataProtectionBackupInstanceInAzGraph -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -DatasourceType AzureBlob -ProtectionStatus ProtectionConfigured

識別出執行個體之後,請使用 Find-AzDataProtectionRestorableTimeRange 命令獲取相關的復原範圍。

Find-AzDataProtectionRestorableTimeRange -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -BackupInstanceName $AllInstances[2].BackupInstanceName -StartTime $startDate -endTime $endDate

EndTime    : 2021-04-24T08:57:36.4149422Z
ObjectType : RestorableTimeRange
StartTime  : 2021-03-25T14:27:31.0000000Z

$DesiredPIT = (Get-Date -Date "2021-04-23T02:47:02.9500000Z")

準備還原要求

修正還原時間點後,就有多個選項可供還原。 請使用 Initialize-AzDataProtectionRestoreRequest 命令,利用所有相關詳細資料準備還原要求。

將所有 Blob 還原至某個時間點

您可以還原儲存體帳戶中的所有區塊 Blob,方法是將 Blob 回復至選取的時間點。 包含大量資料或見證高度變換的儲存體帳戶所需的還原時間可能較長。

$restorerequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $TestBkpVault.Location  -RestoreType OriginalLocation -PointInTime (Get-Date -Date "2021-04-23T02:47:02.9500000Z") -BackupInstance $AllInstances[2]

還原所選容器

您可以瀏覽並選取最多 10 個要還原的容器。

$restorerequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $TestBkpVault.Location  -RestoreType OriginalLocation -PointInTime (Get-Date -Date "2021-04-23T02:47:02.9500000Z") -BackupInstance $AllInstances[2] -ItemLevelRecovery -ContainersList "abc","xyz"

使用前置詞比對來還原容器

您可以使用前綴匹配來還原 Blob 的子集。 您可以在單一容器內或跨多個容器,指定最多 10 個依詞彙編篡順序的 Blob 範圍,讓這些 Blob 回復到過去的指定時間點狀態。 請牢記以下幾點:

  • 您可以使用正斜線 (/) 區分容器名稱與 Blob 前綴
  • 指定範圍的開頭包含在內,但指定的範圍為獨佔。

深入了解如何使用前綴復原 Blob 範圍。

$restorerequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore OperationalStore -RestoreLocation $TestBkpVault.Location  -RestoreType OriginalLocation -PointInTime (Get-Date -Date "2021-04-23T02:47:02.9500000Z") -BackupInstance $AllInstances[2] -ItemLevelRecovery -FromPrefixPattern "containerabc/aaa","containerabc/ccc" -ToPrefixPattern "containerabc/bbb","containerabc/ddd"

觸發還原

使用 Start-AzDataProtectionBackupInstanceRestore 命令,以上述備妥的要求來觸發還原。

Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $AllInstances[2].BackupInstanceName -ResourceGroupName "testBkpVaultRG" -VaultName $TestBkpVault.Name -Parameter $restorerequest

追蹤作業

使用 [Get-AzDataProtectionJob] 命令追蹤所有工作。 您可以列出所有工作,並擷取特定的工作詳細資料。

您也可以使用 Az.ResourceGraph,追蹤所有備份保存庫中的所有作業。 使用 Search-AzDataProtectionJobInAzGraph 命令取得可跨所有備份保存庫的相關作業。

$job = Search-AzDataProtectionJobInAzGraph -Subscription $sub -ResourceGroupName "testBkpVaultRG" -Vault $TestBkpVault.Name -DatasourceType AzureBlob -Operation Restore

下一步

Azure Blob 備份概觀