Start-AzDataProtectionBackupInstanceRestore
Триггеры восстановления для BackupInstance
Синтаксис
Trigger (По умолчанию)
Start-AzDataProtectionBackupInstanceRestore
-ResourceGroupName <String>
-BackupInstanceName <String>
-VaultName <String>
-Parameter <IAzureBackupRestoreRequest>
[-SubscriptionId <String>]
[-ResourceGuardOperationRequest <String[]>]
[-Token <String>]
[-SecureToken <SecureString>]
[-RestoreToSecondaryRegion]
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
TriggerExpanded
Start-AzDataProtectionBackupInstanceRestore
-ResourceGroupName <String>
-BackupInstanceName <String>
-VaultName <String>
-ObjectType <String>
-RestoreTargetInfo <IRestoreTargetInfoBase>
-SourceDataStoreType <SourceDataStoreType>
[-SubscriptionId <String>]
[-ResourceGuardOperationRequest <String[]>]
[-Token <String>]
[-SecureToken <SecureString>]
[-RestoreToSecondaryRegion]
[-DefaultProfile <PSObject>]
[-AsJob]
[-NoWait]
[-IdentityDetailUserAssignedIdentityArmUrl <String>]
[-IdentityDetailUseSystemAssignedIdentity]
[-SourceResourceId <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Описание
Триггеры восстановления для BackupInstance
Примеры
Пример 1. Активация восстановления защищенного диска Azure.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxx-xxx-xxx" -ResourceGroupName "sarath-rg" -VaultName "sarath-vault"
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxx-xxx-xxx" -ResourceGroupName "sarath-rg" -VaultName "sarath-vault" -BackupInstanceName $instance.Name
$restoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDisk -SourceDataStore OperationalStore -RestoreLocation "westus" -RestoreType AlternateLocation -TargetResourceId "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroup}/providers/Microsoft.Compute/disks/{DiskName}" -RecoveryPoint $rp[0].name
Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $instance.BackupInstanceName -ResourceGroupName sarath-rg -VaultName sarath-vault -SubscriptionId "xxx-xxx-xxx" -Parameter $restorerequest
Пример 2. Активация восстановления в качестве базы данных для защищенной базы данных AzureDatabaseForPostgreSQL с помощью хранилища секретов.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName"
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$targetResourceId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resourceGroupName/providers/Microsoft.DBforPostgreSQL/servers/serverName/databases/targetDbName"
$secretURI = "https://oss-keyvault.vault.azure.net/secrets/oss-secret"
$restoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation "westus" -RestoreType AlternateLocation -TargetResourceId $targetResourceId -RecoveryPoint $rp[0].Property.RecoveryPointId -SecretStoreURI $secretURI -SecretStoreType AzureKeyVault
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $instance.BackupInstanceName -ResourceGroupName resourceGroupName -VaultName vaultName -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Parameter $restorerequest
$jobid = $restoreJob.JobId.Split("/")[-1]
$jobstatus = "InProgress"
while($jobstatus -ne "Completed")
{
Start-Sleep -Seconds 10
$currentjob = Get-AzDataProtectionJob -Id $jobid -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName"
$jobstatus = $currentjob.Status
}
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья команда инициализирует $targetResourceId с идентификатором целевой базы данных postgre (targetDbName должна быть новым именем базы данных).
Четвертая команда инициализирует универсальный код ресурса (URI) секрета.
Пятая, шестая команда инициализирует и запускает запрос восстановления для AzureDatabaseForPostgreSQL с хранилищем секретов.
Седьмое, восемь, девятые команды отслеживают задание восстановления до завершения.
Пример 3. Активация восстановления в качестве файлов для защищенной базы данных AzureDatabaseForPostgreSQL.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName"
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$targetContainerURI = "https://targetStorageAccount.blob.core.windows.net/targetContainerName"
$fileNamePrefix = "restore_as_files_12345"
$restoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation "westus" -RestoreType RestoreAsFiles -RecoveryPoint $rp[0].Property.RecoveryPointId -TargetContainerURI $targetContainerURI -FileNamePrefix $fileNamePrefix
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $instance.BackupInstanceName -ResourceGroupName resourceGroupName -VaultName vaultName -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -Parameter $restorerequest
$jobid = $restoreJob.JobId.Split("/")[-1]
$jobstatus = "InProgress"
while($jobstatus -ne "Completed")
{
Start-Sleep -Seconds 10
$currentjob = Get-AzDataProtectionJob -Id $jobid -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName"
$jobstatus = $currentjob.Status
}
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья команда инициализирует $targetContainerURI с идентификатором контейнера целевой учетной записи хранения.
Четвертая команда инициализирует префикс имени файла для восстановления.
Пятая, шестая команда инициализирует и запускает запрос восстановления для AzureDatabaseForPostgreSQL с хранилищем секретов.
Седьмое, восемь, девятые команды отслеживают задание восстановления до завершения.
Пример 4. Активация восстановления в качестве файлов для защищенной службы AzureKubernetesService.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" | Where-Object { $_.Name -match "aks-cluster-name" }
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -NamespaceMapping @{"sourceNamespace1"="targetNamespace1";"sourceNamespace2"="targetNamespace2"}
$snapshotResourceGroupId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/snapshotResourceGroup"
$aksOLRRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore OperationalStore -RestoreLocation eastus -RestoreType OriginalLocation -RecoveryPoint $rps[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -BackupInstance $instance
Set-AzDataProtectionMSIPermission -VaultResourceGroup "resourceGroupName" -VaultName "vaultName" -PermissionsScope "ResourceGroup" -RestoreRequest $aksOLRRestoreRequest -SnapshotResourceGroupId $snapshotResourceGroupId
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -RestoreRequest $aksOLRRestoreRequest -Name $instance.BackupInstanceName
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.BackupInstanceName -Parameter $aksOLRRestoreRequest
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья команда инициализирует объект клиента конфигурации восстановления, используемый для инициализации объекта клиента запроса восстановления.
Четвертая команда инициализирует идентификатор группы ресурсов моментального снимка. Пятая команда инициализирует объект запроса восстановления для восстановления AzureKubernetesService.
Шестая команда назначает разрешения для хранилища резервных копий и целевого кластера AKS, необходимого для активации восстановления для AzureKubernetesService.
Последняя команда активирует восстановление для AzureKubernetesService.
Пример 5. Активация восстановления для хранилищ больших двоичных объектов.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" | Where-Object { $_.Name -match "storageAcountName" }
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$backedUpContainers = $instance.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList
$restoreReq = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore VaultStore -RestoreLocation "vaultLocation" -RecoveryPoint $rp[0].Name -ItemLevelRecovery -RestoreType AlternateLocation -TargetResourceId "targetStorageAccountId" -ContainersList $backedUpContainers[0,1]
Test-AzDataProtectionBackupInstanceRestore -Name $instance[0].Name -ResourceGroupName "resourceGroupName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -VaultName "vaultName" -RestoreRequest $restoreReq
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.BackupInstanceName -Parameter $restoreReq
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья команда извлекает контейнеры, защищенные с помощью политики хранилища.
Четвертая команда инициализирует объект запроса восстановления для восстановления AzureBlob.
Перед восстановлением выполняется проверка пятой команды.
Последняя команда активирует восстановление для контейнеров с хранилищем BLOB-объектов.
Пример 6. Активация восстановления между подписками для хранилищ больших двоичных объектов.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" | Where-Object { $_.Name -match "storageAcountName" }
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$backedUpContainers = $instance.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList
$targetCrossSubscriptionStorageAccountId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resourceGroupName/providers/Microsoft.Storage/storageAccounts/targetStorageAccount"
$restoreReqCSR = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore VaultStore -RestoreLocation "vaultLocation" -RecoveryPoint $rp[0].Name -ItemLevelRecovery -RestoreType AlternateLocation -TargetResourceId $targetCrossSubscriptionStorageAccountId -ContainersList $backedUpContainers[0,1]
Test-AzDataProtectionBackupInstanceRestore -Name $instance[0].Name -ResourceGroupName "resourceGroupName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -VaultName "vaultName" -RestoreRequest $restoreReqCSR
$restoreJobCSR = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.BackupInstanceName -Parameter $restoreReqCSR
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья команда извлекает контейнеры, защищенные с помощью политики хранилища.
Четвертая команда инициализирует идентификатор целевой учетной записи хранения между подписками. Пятая команда инициализирует объект запроса восстановления для восстановления между подписками AzureBlob.
Перед восстановлением выполняется проверка шестой команды.
Последняя команда активирует восстановление между подписками для контейнеров blob-объектов с хранилищем.
Пример 7. Активация восстановления между подписками в качестве файлов для AzureDatabaseForPostgreSQL.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" | Where-Object { $_.Property.DataSourceInfo.ResourceType -match "Postgre" }
$rp = Get-AzDataProtectionRecoveryPoint -BackupInstanceName $instance[0].BackupInstanceName -ResourceGroupName "resourceGroupName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -VaultName "vaultName"
$targetResourceArmId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/crossSubResourceGroupName/providers/Microsoft.Storage/storageAccounts/akneemasaecy/blobServices/default/containers/oss-csr-container"
$targetContainerURI = "https://akneemasaecy.blob.core.windows.net/oss-csr-container"
$fileNamePrefix = "oss-csr-pstest-restoreasfiles"
$ossRestoreReqFiles = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPostgreSQL -SourceDataStore VaultStore -RestoreLocation "vaultLocation" -RestoreType RestoreAsFiles -RecoveryPoint $rp[0].Property.RecoveryPointId -TargetContainerURI $targetContainerURI -FileNamePrefix $fileNamePrefix -TargetResourceIdForRestoreAsFile $targetContainerArmId
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -Name $instance[0].Name -ResourceGroupName "resourceGroupName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -VaultName "vaultName" -RestoreRequest $ossRestoreReqFiles
$restoreJobCSR = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.BackupInstanceName -Parameter $ossRestoreReqFiles
$jobid = $restoreJobCSR.JobId.Split("/")[-1]
$jobstatus = "InProgress"
while($jobstatus -ne "Completed")
{
Start-Sleep -Seconds 10
$currentjob = Get-AzDataProtectionJob -Id $jobid -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName"
$jobstatus = $currentjob.Status
}
Первая, вторая команда извлекает экземпляр резервной копии и точку восстановления для экземпляра резервного копирования.
Третья команда инициализирует идентификатор ARM для целевого контейнера.
Этот параметр необходим для хранилищ, в которых восстановление между подписками отключено и необязательно для хранилищ с поддержкой CSR.
Четвертая, пятая команда инициализирует targetContainerURI и fileNamePrefix для восстановления.
Шестая команда инициализирует объект запроса восстановления для восстановления AzureDatabaseForPostgreSQL.
Перед восстановлением выполняется проверка седьмой команды.
Последняя команда активирует восстановление между подписками в качестве файлов для AzureDatabaseForPostgreSQL.
Пример 8. Активация восстановления между регионами для AzureDatabaseForPostgreSQL.
$restoreJobCRR = Start-AzDataProtectionBackupInstanceRestore -BackupInstanceName $instance.Name -ResourceGroupName $ResourceGroupName -VaultName $vaultName -SubscriptionId $SubscriptionId -Parameter $OssRestoreReq -RestoreToSecondaryRegion
$jobid = $restoreJobCRR.JobId.Split("/")[-1]
$jobstatus = "InProgress"
while($jobstatus -ne "Completed")
{
Start-Sleep -Seconds 10
$currentjob = Get-AzDataProtectionJob -Id $jobid -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -UseSecondaryRegion
$jobstatus = $currentjob.Status
}
Эта команда запускает восстановление между регионами для AzureDatabaseForPostgreSQL.
Для активации восстановления между регионами в дополнительный регион используйте параметр RestoreToSecondaryRegion.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" | Where-Object { $_.Name -match "test-pgflex" }
$rps = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$targetContainerURI = "https://teststorageaccount.blob.core.windows.net/powershellpgflexrestore"
$storageAccId = (Get-AzStorageAccount -ResourceGroupName "teststorageaccountRG" -Name "teststorageaccount").Id
$pgFlexRestoreAsFilesRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureDatabaseForPGFlexServer -SourceDataStore VaultStore -RestoreLocation $vault.Location -RestoreType RestoreAsFiles -RecoveryPoint $rps[0].Property.RecoveryPointId -TargetContainerURI $targetContainerURI
Set-AzDataProtectionMSIPermission -VaultResourceGroup "resourceGroupName" -VaultName "vaultName" -PermissionsScope "ResourceGroup" -RestoreRequest $pgFlexRestoreAsFilesRequest -DatasourceType AzureDatabaseForPGFlexServer -SubscriptionId $SubscriptionId -StorageAccountARMId $storageAccId
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -RestoreRequest $pgFlexRestoreAsFilesRequest -Name $instance.BackupInstanceName
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.BackupInstanceName -Parameter $pgFlexRestoreAsFilesRequest
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья и четвертая команда инициализирует идентификатор целевого контейнера и идентификатор ARM целевой учетной записи хранения. Пятая команда инициализирует объект запроса восстановления для восстановления AzureDatabaseForPGFlexServer.
Этот пример также подходит для типа источника данных AzureDatabaseForMySQL.
Шестая команда назначает разрешения для хранилища резервных копий и других разрешений, необходимых для активации восстановления для AzureDatabaseForPGFlexServer.
Последняя команда активирует восстановление для AzureDatabaseForPGFlexServer.
Пример 10. Активируйте контейнеры резервного копирования ItemLevelRestore с префиксомMatch для Azureblob.
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" | Where-Object { $_.Name -match "storageAcountName" }
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.Name
$backedUpContainers = $instance.Property.PolicyInfo.PolicyParameter.BackupDatasourceParametersList[0].ContainersList
$prefMatch = @{
$backedUpContainers[0] = @("Su", "PS")
$backedUpContainers[1]= @("meta", "coll", "Su")
}
$targetStorageAccountId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/resourceGroupName/providers/Microsoft.Storage/storageAccounts/targetStorageAccount"
$restoreReqILR = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureBlob -SourceDataStore VaultStore -RestoreLocation "vaultLocation" -RecoveryPoint $rp[0].Name -ItemLevelRecovery -RestoreType AlternateLocation -TargetResourceId $targetStorageAccountId -ContainersList $backedUpContainers[0,1] -PrefixMatch $prefMatch
Test-AzDataProtectionBackupInstanceRestore -Name $instance[0].Name -ResourceGroupName "resourceGroupName" -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -VaultName "vaultName" -RestoreRequest $restoreReqILR
$restoreJobILR = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" -ResourceGroupName "resourceGroupName" -VaultName "vaultName" -BackupInstanceName $instance.BackupInstanceName -Parameter $restoreJobILR
Первая, вторая команда извлекает экземпляр и точку восстановления для экземпляра.
Третья команда извлекает контейнеры, защищенные с помощью политики хранилища.
Четвертая команда инициализирует массив префиксов для каждого контейнера.
ПрефиксMatch — это хэш-файл, в котором каждый ключ — это имя контейнера, которое восстанавливается, а значение — это список строковых префиксов для имен контейнеров для восстановления уровня элементов.
Пятая команда инициализирует идентификатор целевой учетной записи хранения. Шестая команда инициализирует объект запроса восстановления для восстановления AzureBlob с параметрами ContainersList, PrefixMatch.
Перед восстановлением выполняется проверка седьмой команды.
Последняя команда активирует префикс на уровне элемента восстановления для хранилищ контейнеров BLOB-объектов.
Пример 11. Активация альтернативного хранилища расположения для AzureKubernetesService
$subId = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$resourceGroupName = "resourceGroupName"
$vaultName = "vaultName"
$location = "eastasia"
$snapshotResourceGroupId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/stagingRG"
$stagingStorageAccount = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/stagingRG/providers/Microsoft.Storage/storageAccounts/snapshotsa"
$targetAKSClusterARMId = "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/targetRG/providers/Microsoft.ContainerService/managedClusters/targetKubernetesCluster"
$instance = Get-AzDataProtectionBackupInstance -SubscriptionId $subId -ResourceGroupName $resourceGroupName -VaultName $vaultName | Where-Object { $_.Name -match "aks-cluster-name" }
$rp = Get-AzDataProtectionRecoveryPoint -SubscriptionId $subId -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstanceName $instance.Name
$aksRestoreCriteria = New-AzDataProtectionRestoreConfigurationClientObject -DatasourceType AzureKubernetesService -PersistentVolumeRestoreMode RestoreWithVolumeData -IncludeClusterScopeResource $true -StagingResourceGroupId $snapshotResourceGroupId -StagingStorageAccountId $stagingStorageAccount -IncludedNamespace "hrweb" -NamespaceMapping @{"hrweb"="hrwebrestore"}
$aksALRRestoreRequest = Initialize-AzDataProtectionRestoreRequest -DatasourceType AzureKubernetesService -SourceDataStore VaultStore -RestoreLocation $location -RestoreType AlternateLocation -RecoveryPoint $rp[0].Property.RecoveryPointId -RestoreConfiguration $aksRestoreCriteria -TargetResourceId $targetAKSClusterARMId
# assign necessary permissions from portal
Set-AzContext -SubscriptionId $subId
Set-AzDataProtectionMSIPermission -VaultResourceGroup $resourceGroupName -VaultName $vaultName -PermissionsScope "ResourceGroup" -RestoreRequest $aksALRRestoreRequest -SnapshotResourceGroupId $snapshotResourceGroupId
$validateRestore = Test-AzDataProtectionBackupInstanceRestore -SubscriptionId $subId -ResourceGroupName $resourceGroupName -VaultName $vaultName -RestoreRequest $aksALRRestoreRequest -Name $instance.BackupInstanceName
$restoreJob = Start-AzDataProtectionBackupInstanceRestore -SubscriptionId $subId -ResourceGroupName $resourceGroupName -VaultName $vaultName -BackupInstanceName $instance.BackupInstanceName -Parameter $aksALRRestoreRequest
Во-первых, мы инициализируем необходимые переменные, которые будут использоваться в скрипте восстановления.
Затем мы извлекаем экземпляр резервного копирования и точку восстановления для экземпляра.
Затем мы инициализируем объект клиента конфигурации восстановления, который используется для настройки клиентского объекта запроса восстановления.
Обратите внимание, что для восстановления в хранилище мы включили параметры StagingResourceGroupId и StagingStorageAccountId.
Затем мы инициализируем объект запроса восстановления для альтернативного восстановления расположения службы Azure Kubernetes (AKS).
После этого мы назначим необходимые разрешения хранилищу резервных копий и целевому кластеру AKS, чтобы включить операцию восстановления.
Обратите внимание, что эта команда не полностью поддерживается для всех сценариев AKS; используйте портал Azure для назначения необходимых разрешений.
Наконец, мы используем команду Test для проверки конфигурации восстановления и убедитесь, что необходимые разрешения установлены перед активацией восстановления для службы Azure Kubernetes.
Параметры
-AsJob
Выполнение команды в качестве задания
Свойства параметров
Тип: SwitchParameter
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-BackupInstanceName
Имя экземпляра резервного копирования
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: True
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-Confirm
Запрашивает подтверждение перед запуском cmdlet.
Свойства параметров
Тип: SwitchParameter
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Aliases: cf
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-DefaultProfile
Триггеры восстановления для BackupInstance
Свойства параметров
Тип: PSObject
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Aliases: AzureRMContext, AzureCredential
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-IdentityDetailUserAssignedIdentityArmUrl
URL-адрес ARM для назначаемого пользователем удостоверения
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
TriggerExpanded
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-IdentityDetailUseSystemAssignedIdentity
Указывает, защищен ли бизнес-аналитика системным удостоверением
Свойства параметров
Тип: SwitchParameter
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
TriggerExpanded
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-NoWait
Асинхронное выполнение команды
Свойства параметров
Тип: SwitchParameter
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-ObjectType
Тип объекта запроса на восстановление
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
TriggerExpanded
Position: Named
Обязательно: True
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-Parameter
Восстановление объекта запроса для инициализации с помощью командлета Initialize-AzDataProtectionRestoreRequest To, см. раздел NOTES для свойств PARAMETER и создание хэш-таблицы.
Свойства параметров
Наборы параметров
Trigger
Position: Named
Обязательно: True
Значение из конвейера: True
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-ResourceGroupName
Имя группы ресурсов, в которой находится хранилище резервных копий
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: True
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-ResourceGuardOperationRequest
Запрос операции Resource Guard в формате, аналогичном <resourceguard-ARMID>/dppTriggerRestoreRequests/default.
Используйте этот параметр, если операция защищена muA.
Свойства параметров
Тип: String [ ]
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-RestoreTargetInfo
Возвращает или задает сведения о целевом объекте восстановления Для создания, см. раздел NOTES для свойств RESTORETARGETINFO и создание хэш-таблицы.
Свойства параметров
Наборы параметров
TriggerExpanded
Position: Named
Обязательно: True
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-RestoreToSecondaryRegion
Переключение параметра для активации восстановления в дополнительный регион (восстановление между регионами)
Свойства параметров
Тип: SwitchParameter
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-SecureToken
Параметр для авторизации операций, защищенных межтенантной защитой ресурсов.
Используйте команду (Get-AzAccessToken -TenantId "xxxx-xxxx-xxxx-xxxx -AsSecureString"). Маркер для получения маркера авторизации для разного клиента.
Свойства параметров
Тип: SecureString
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-SourceDataStoreType
Тип исходного хранилища данных
Свойства параметров
Тип: SourceDataStoreType
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
TriggerExpanded
Position: Named
Обязательно: True
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-SourceResourceId
Полный идентификатор Azure Resource Manager для восстанавливаемого источника данных
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
TriggerExpanded
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-SubscriptionId
Идентификатор подписки хранилища резервных копий
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-Token
Нерекомендуемая функция параметра.
Вместо этого используйте SecureToken.
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-VaultName
Имя хранилища резервных копий
Свойства параметров
Тип: String
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Наборы параметров
(All)
Position: Named
Обязательно: True
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
-WhatIf
Показывает, что произойдет, если командлет будет запущен.
Командлет не запускается.
Свойства параметров
Тип: SwitchParameter
Default value: None
Поддерживаются подстановочные знаки: False
DontShow: False
Aliases: wi
Наборы параметров
(All)
Position: Named
Обязательно: False
Значение из конвейера: False
Значение из конвейера по имени свойства: False
Значение из оставшихся аргументов: False
CommonParameters
Этот командлет поддерживает общие параметры: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction и -WarningVariable. Дополнительные сведения см. в разделе about_CommonParameters .
Выходные данные