Azure PowerShell を使用して Azure BLOB を復元する
この記事では、PowerShell を使用して、運用バックアップまたは保管済みバックアップから Azure BLOB の復元を実行する方法について説明します。 運用バックアップを使用すると、運用バックアップが構成されたストレージ アカウントのすべてのブロック BLOB、または BLOB コンテンツのサブセットを保持期間の任意の時点に復元することができます。 保管済みバックアップでは、バックアップ スケジュールに基づいて作成された復旧ポイントを使用して復元を実行できます。
重要
Azure BLOB のサポートは、Az 5.9.0 バージョンから利用できます。
重要
Azure Backup を使用した 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 を、選択した時点までロールバックすることで復元できます。 大量のデータが含まれている、または高チャーンが監視されているストレージ アカウントの場合、復元に時間がかかることがあります。
$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 のサブセットを復元できます。 単一のコンテナー内または複数のコンテナー全体の BLOB の最大 10 個の辞書式範囲を復元して、以前の特定の時点の状態にそれらの 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