Поделиться через


Восстановление Azure Blobs с использованием Azure PowerShell

Эта статья описывает, как использовать PowerShell для восстановления Azure Blob из операционных или архивных резервных копий. С помощью рабочих резервных копий вы можете восстановить все блочные блоки в учетных записях хранения, для которых настроена рабочая резервная копия, или часть содержимого блоков до любого момента времени в пределах диапазона хранения. С помощью архивных резервных копий вы можете выполнять восстановление, используя созданную точку восстановления, основываясь на вашем расписании резервного копирования.

Вы также можете восстановить объекты BLOB Azure с помощью портала Azure, Azure CLI, REST API.

Важно

Поддержка для Azure блобов доступна начиная с версии Az 5.9.0.

Важно

Прежде чем приступить к восстановлению Azure BLOB с помощью Azure Backup, ознакомьтесь с важными моментами.

В этой статье вы узнаете, как:

  • Восстановить Azure Blobs

  • Отслеживайте статус операции восстановления

Давайте использовать уже существующее хранилище резервных копий TestBkpVault в рамках группы ресурсов testBkpVaultRG в примерах.

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

Восстановление объектов Blob Azure в учетной записи хранения

Выберите уровень резервного копирования:

Получить допустимый временной диапазон для восстановления

Поскольку операционное резервное копирование для двоичных больших объектов (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-объекты в учетной записи хранения, вернув их к выбранному моменту времени. Аккаунты хранилища, содержащие большие объемы данных или демонстрирующие высокий уровень изменений, могут требовать больше времени для восстановления.

$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"

Восстановите контейнеры, используя совпадение префикса

Вы можете восстановить подмножество блогов, используя совпадение по префиксу. Вы можете указать до 10 лексикографических диапазонов блобов в рамках одного контейнера или между несколькими контейнерами, чтобы вернуть эти блобы в предыдущее состояние на определенный момент времени. Вот несколько вещей, которые следует учитывать:

  • Вы можете использовать косую черту (/) для разделения названия контейнера от префикса блоба.
  • Начало указанного диапазона является инклюзивным, однако указанный диапазон является эксклюзивным.

Узнайте больше о использовании префиксов для восстановления диапазонов 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