Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Эта статья описывает, как использовать 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